강의를 보면 ActionChain(driver).scroll( 이라는 함수를 사용하셨는데 스크롤을 위한 시작점을 선택해서 스크롤 시키는것 같습니다.) 하지만 저도 이 함수를 쓰려고 했지만 해당 함수가 ActionChain 에 안나오는걸로 보여서 나중에 보니 scroll_by_amount로 바뀐거로 보입니다. scroll 을 써야 좀더 사람같은?걸까요? 그리고 ActionChain에 TouchAction 이라는게 보이긴 하는데 터치를 시뮬레이션 할 수 있다면 더 좋을것 같은데 혹시 방법이 있을까요?
안녕하세요. 뷰티풀수프 기초 사용법 수강 중에 잘 안되는 부분이 있어서 질문 남깁니다. 네이버 메인 화면 개발자 모드에서 <span class="service_name">메일</span> 라는 태그를 찾아서 이 태그를 찾기 위해 span = soup.find(class_="service_name", string="메일") print(span) 이렇게 작성했는데 왜 결과값이 none 이 나오는지 이유를 모르겠습니다 ㅠㅠ 그리고 앞의 강의에서 개발자 모드의 element가 아니라 소스보기에서 보이는 코드에서 태그를 검색해서 찾아내는 것(?)이라고 말씀하셨던 것 같은데 제대로 이해한게 맞나요? 소스 보기로 보면 코드가 너무 지저분하게 보이는데 혹시 깔끔하게 볼 수 있는 방법이 있을까요?
저는 selenium 4.14 버전 사용중인데 service 관련 내용들을 지우면 실행이 되지 않는데 뭐가 문제일까요? 아래 오류가 뜹니다. driver = webdriver.Chrome () ^^^^^^^^^^^^^^^^^^ File "c:\users\user\appdata\local\packages\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\localcache\local-packages\python311\site-packages\selenium\webdriver\chrome\ webdriver.py ", line 45, in __init__ super().__init__( File "c:\users\user\appdata\local\packages\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\localcache\local-packages\python311\site-packages\selenium\webdriver\chromium\ webdriver.py ", line 51, in __init__ self.service.path = DriverFinder.get_path(self.service, options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "c:\users\user\appdata\local\packages\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\localcache\local-packages\python311\site-packages\selenium\webdriver\common\driver_ finder.py ", line 41, in get_path raise NoSuchDriverException(msg) from err selenium.common.exceptions.NoSuchDriverException: Message: Unable to obtain driver for chrome using Selenium Manager.; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
from bs4 import BeautifulSoup import requests keyword = input("검색할 제품을 입력하세요 : ") url = f"https://search.shopping.naver.com/search/all?query={keyword}" user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36" headers = {"User-Agent" : user_agent} req = requests.get(url, headers = headers) html = req.text soup = BeautifulSoup(html, 'html.parser') items = soup.select(".product_item__MDtDF") print(items) print(len(items)) 네이버 쇼핑 크롤링 중 문의사항이 있어 글 남깁니다 위의 코드 처럼 네이버 쇼핑에서 검색 시 상품 정보 중 product_item__MDtDF를 받아와서 리스트를 만드려고 하는데 크롬 개발자도구에서는 11개로 검색되지만 위의 코드를 실행하여 '모니터'를 검색해보면 len가 1밖에 나오지 않습니다. product_item__MDtDF를 제외하고는 강의 내용과 동일한거 같은데 어디에 문제가 있는 걸까요..?
안녕하세요. 수업 보면서 따라하고 있는데 처음부터 막히네요... 터미널창에 chromedriver_autoinstaller 설치를 하고 import를 하려고 하는데 수업 화면처럼 자동완성이 되지 않더니 터미널창에서 에러가 납니다. 재설치를 하려고 하면 이미 설치가 되었다고 나오는데, 설치가 된건데 import가 되지 않는건가요? ㅜㅜㅜ
options = uc.ChromeOptions() 가져와서 아래쪽에 uc.Chrome () 실행할때 options가 안넣어져 있는데 안넣고 실행하는건가요??? 깃허브에 설명에는 driver = uc.Chrome(options=options) 이렇게 되어 있어 보이는데요?
셀레니움 버전도 3.14?였나 최신걸로 업데이트 하고 써서 웹드라이버 설치하는 것도 안해도 되는 상태인데요. 강의에서는 driver.get(url) 하면 창이 켜졌다 자동으로 꺼지던데 제꺼는 창이 자동으로 안꺼집니다... 뭔가 업데이트로 변경된 부분인가요? 창 안꺼지도록 하는 방법 강의 들으려는데 제꺼는 원래 안꺼져서 당황스럽네요
theme 적용시, 강사님께서 말씀해주신 것처럼 작업 폴더에 .streamlit 폴더를 만들고, 그 안에 config.toml 파일을 만들어 테마 적용을 했지만, 아래의 문구가 발생하며, 태마가 적용이 되지 않습니다. The page that you have requested does not seem to exist. Running the app's main page. 어떤 이유 인지 알려주세요.
text가 하위 태그에 있는 문자열까지 가져온다는 것은 알겠습니다. 근데 string도 명확한 설명 부탁드립니다.. 강의에서 <a class="logo_naver"> <span class="blind">네 이버</span></a> 이걸로 예를 들었는데.. 공백도 문자열이잖아요. 강의에서도 그렇게 말씀하셨고. 그러면 위 html코드에 string을 불러오면 a태그 뒤의 공백 한칸을 가져와서 " " 이런 공백 한칸으로 이루어진 문자열이 나와야 할 것 같은데 None으로 나오죠.. 문자열인데 왜 None으로 나오는지 잘 모르겠습니다. 엔터가 들어가도 None으로 나오는 것 같은데... text는 알겠는데 string은 설명이 좀 부족한것 같아서 보충 설명 부탁드립니다.
강의 내용 외 개인적인 실습 사이트의 질문은 답변이 제공되지 않습니다. 문제가 생긴 코드, 에러 메세지 등을 꼭 같이 올려주셔야 빠른 답변이 가능합니다. 코드를 이미지로 올려주시면 실행이 불가능하기 때문에 답변이 어렵습니다. 답변은 바로 제공되지 않을 수 있습니다. 실력 향상을 위해서는 직접 고민하고 검색해가며 해결하는 게 가장 좋습니다. import requests from bs4 import BeautifulSoup url = " https://naver.com " req = requests.get(url) html = req.text print(html) 주피터 노트에서는 실행이 되는데 비쥬얼스튜디오에서는 결과가 이렇게 나왔습니다. PS C:\Users\pw720> & C:/Users/pw720/AppData/Local/Programs/Python/Python311/python.exeon.exe AMD64)] on win32 Python 3.11.5 (tags/v3.11.5:cce6ba9, Aug 24 2023, 14:38:34) [MSC v.1936 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> print(html) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'html' is not defined >>> print(html) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'html' is not defined >>> beautifulsoup4설치가 안되는것같아 cmd에서 설치했는데 제대로 안깔려서 안되는건가요?
안녕하세요 선생님! 동시성과 병렬성 관련해 기초가 약해 해당 강의를 들으면서 OS 부족한 부분을 많이 알게되어 도움이 많이되고 있습니다. 다름이 아니라 해당 강좌 범위는 벗어나지만.. 구글링해도 명확하게 해결되지 않아 질문 드립니다. 동시성을 구현하는 방법으로 멀티쓰레드 나 코루틴 방법으로 구현을 할 수있고 멀티쓰레드 방법에서 쓰레드 전환 간 context switch가 많기 때문에 오버헤드도 많아 Coroutine 방법을 많이 쓰고 또한 유저가 이벤트루프(스케쥴링)을 app에서 관리한다는 측면에서 디버그가 유용하다 정도로 이해하고 있습니다. 많은 블로그에서 멀티쓰레드보다 코루틴을 소개하면서 동시성 구현시 코루틴을 더 상위(혹은 좋은) 방법으로 서술이 많이 되어 있더라구요. I/O작업이 빈번할 경우 코루틴이 더 유리하다는 이해가 됩니다. 싱글스레드 + async 싱글스레드 멀티스레드 + async 멀티스레드 2개의 구현방법이 레이어가 다르다(thread와 task)보니 4가지 경우의 수를 적용할 수 있는데 실제 동시성을 적용해야되는 상황이면 어떻게 판단하고 최적의 구현방법(4가지 중 선택)을 적용할 수 있을까요? (파이썬 스택을 쓰고 있으며 GIL도 이해하고 있는 상태입니다.) 다시한번 해당 강의와 조금 벗어난 질문드려 죄송합니다. ( _ _ )
안녕하세요 강의 정말 잘 듣고있습니다! SSG가 SSR보다 사용자 경험이 좋은건 이해했습니다! 근데 한가지 더 의문점인건 SSG가 아니고 SSR을 선택해야하는 케이스가 있을까요? 라는 의문이 듭니다! 예를 들면 검색결과 페이지라던가 매번 매순간 페이지의 내용이 달라지는 페이지라면 SSG가 아니고 SSR로 만드는게 더 적합한 그런 케이스가 실무에서 있을까요?
선생님 강의 관련 질문은 아니지만 셀리니움 사용 과정에 어려움을 느껴서 질문드립니다... 셀레니움에 두번째 페이지(window_handle[1]) 에서 웹푸시 알림이 뜨는데 크롬 옵션 설정 제어 안됨 (chrome_options.add_argument("--disable-notifications")) send_key(Keys.ENTER) 전송 X 액션체인 X try문으로 WebDriverWait(driver, 10).until (EC.alert_is_present()) , alert.accept() ALERT 인식 못함. 어떤 방법으로 웹푸시 알림 을 확인하거나 취소 할 수 있을까요?