수강이 제한됩니다.
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
네이버카페 글쓰기 관련하여 질문이 있습니다.
이제 듣기 시작하는 중인데 기존에 크롤링 몇번 해보다가 막혔던 거 질문이 있습니다. 좀 더 고급진 크롤링, 상대방이 어느정도 막으려고 해놓은 것도 크롤링 하는 리얼 크롤링은 어떻게 배울 수 있을까요? 가령 네이버 카페 글쓰기를 크롤링해보려고 하는데요. selector로 크롤링하다보면 '#SE-a2c1290e-85ee-4ca3-8619-18f42b8b72f7 > div.se-wrap.se-dnd-wrap > div > div.se-popup.se-popup-banner.se-popup-banner-black-type > div.se-popup-container > button' 이런 게 나옵니다... 페이지에 들어갈때마다 #SE-a2c1290e-85ee-4ca3-8619-18f42b8b72f7 이 부분이 바뀝니다. 단순히 css selector만 가지고는 크롤링이 막혀버립니다. 이것말고 예전에 다른 대형사이트도 크롤링 해보려고 했었는데, 저런식으로 막으려고 한다던가, react-virtualzied list 같은 거 나오면 크롤링이 막힙니다.... 이런 거는 어떤식으로 해야 크롤링 할 수 있을까요???
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
뉴스기사 제목만 출력되고 본문은 나오지 않습니다.
from selenium import webdriver from selenium.webdriver.common.keys import Keys import time chromedriver= ('C:/Users/admin/dev_python/Webdriver/chromedriver.exe') headless_options=webdriver.ChromeOptions() #함수호출 headless_options.add_argument('headless') headless_options.add_argument('window-size=1920x1080') headless_options.add_argument("disable-gpu") headless_options.add_argument("lang=ko_KR") driver=webdriver.Chrome(chromedriver,options=headless_options) driver.get("https://news.v.daum.net/v/20210311134106922") title=driver.find_element_by_id('harmonyContainer') print(driver.title) driver.quit() 똑같은 기사는 찾기 어려워서 다음에서 뉴스를 찾아서 같은 id값을 찾아서 넣었으나 뉴스 기사의 본문이 나오지 않고 기사 제목만 결과로 출력됩니다;; 강사님처럼 본문이 나오게 하려면 무엇을 찾아서 넣어야 할까요 ? ㅜㅜ
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
오류메시지가 뜹니다.
from selenium import webdriver from selenium.webdriver.common.keys import Keys import time chromedriver= ('C:/Users/admin/dev_python/Webdriver/chromedriver.exe') driver=webdriver.Chrome(chromedriver) driver.get("http://www.python.org") print(driver.title) print(driver.current_url) assert "Python" in driver.title search = driver.find_elememt_by_id("id-search-field") #id인 태그를 찾아서 키보드로 입력값을 넣어준것임 search.clear() search.send_keys("python") search.send_Keys(Keys.RETURN) time.sleep(2) assert "No result found." not in driver.page_source data=driver.find_elements_by_css_selector("#content > div > section > form > ul > li > h3 > a") for item in data: print(item.text) driver.quit() 여기결과가 아래와 같이 뜹니다. 올바로 작성한것같은데 어느부분이 문제인지요? ㅜㅜ
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
[참고] 실전크롤링: xpath와 selenium 활용해서 페이스북 로그인하기
강의 제목 - 실전크롤링: xpath와 selenium 활용해서 페이스북 로그인하기 강의 동영상 6:46 에서 1. xpath 선택자 부분이 바뀌었습니다. 기존코드 login_button = "//*[@id=''u_0_d]" 바뀐코드 login_btn = "//*[@id='u_0_d_1n']" 2. 기존 동영상 강의 코드 그대로 하면 크롤링이 안됩니다. 문제가 되는 부분 ------------ email_id = "//*[@id='email']" password_id = "//*[@id='pass']" login_button = "//*[@id='u_0_d_1n']" email_tag = WebDriverWait(driver,10).until(EC.presence_of_element_located((By.XPATH, email_id))) password_tag = WebDriverWait(driver,10).until(EC.presence_of_element_located((By.XPATH,password_id))) login_button_tag = WebDriverWait(driver,10).until(EC.presence_of_element_located((By.XPATH,login_button))) xpath와 WebDriverWait 부분이 문제가 되는 것 같습니다. 바꾼 전체 소스 코드 ------------- 다음과 같이 바꾸니 크롤링이 되었습니다. from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time driver = webdriver.Chrome() time.sleep(2) driver.get('https://www.facebook.com') time.sleep(5) my_id = '7005425@gmail.com' my_pwd = '칠공공5425' email = driver.find_element_by_id('email') password = driver.find_element_by_id('pass') login_btn = driver.find_element_by_name('login') email.clear() email.send_keys(my_id) time.sleep(2) password.clear() password.send_keys(my_pwd) time.sleep(2) login_btn.click()
- 해결됨현존 최강 크롤링 기술: Scrapy와 Selenium 정복
다음 뉴스기사 찬반순 버튼 클릭
삭제된 글입니다
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
실행결과가 오류가 나옵니다;;
저는 윈도우라서 c드라이브에 폴더 만들어서 이렇게 넣었습니다. 그 다음에 강사님동영상대로 저렇게 아래 코드를 넣었는데요... from selenium import webdriver from selenium.webdriver.common.keys import Keys chromedriver ='dev_python/Webdriver/chromedriver.exe' driver=webdriver.chrome(chromedriver) 아래 보시는 것처럼 모듈이 올라브지 않다고 오류가 나서;; selenium은 비주얼스튜디오의 터미널모드에서 pip install selenium 으로 성공적으로 깔았는데 뭐가 문제일까요?
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
지마켓 크롤링 4
안녕하세요 크롤링을 하면서 ori_price = ori_price.replace(",","").replace("원","") dis_price = dis_price.replace(",","").replace("원","") 위 코드를 넣기 전에는 모두 정상적으로 작동하는데요 if ori_price == None: ori_price == dis_price 강의 내용대로 위 코드 아래에 넣은 이후로는 코드가 정상적으로 작동하지 않네요... 왜 이런 문제가 생기는 걸까요..? 오류에 AttributeError: 'NoneType' object has no attribute 'replace' 이런게 나오는 거 같은데 어찌할 바를 모르겠네요.. 감사합니다.
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
403 에러
특정 사이트의 경우 start_urls 부터 안되던데, 이 경우 어떻게 크롤링을 해야할까요? "2021-02-09 23:27:33 [scrapy.spidermiddlewares.httperror] INFO: Ignoring response <403 http://bodyluv.kr/product/3%EC%B0%A8-renewal-%EB%B0%94%EB%94%94%EB%9F%BD-%EB%A7%88%EC%95%BD%EB%B2%A0%EA%B0%9C/44/category/1/display/2/?crema-product-reviews-1-page=1>: HTTP status code is not handled or not allowed" 구체적으론 위와 같은 에러가 발생합니다.
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
if문 discount_percent='0'
discount_percent를 int형 0 이 아닌 굳이 문자열 '0'으로 넣는 이유가 있으신가요?ㅠㅠ
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
크롤링을 하다가 궁금한 점이 있어서 질문드립니다.
크롤링 예제와 강의에 따라서 아래와 같이 2가지 경우로 해봤는데 결과가 다르게 나왔습니다. prices = response.css('div.best-list ul > li > div.s-price > strong > span ::text').getall() prices = response.css('div.best-list ul li div.s-price strong span ::text').getall() 여기서 > 꺾쇠의 의미가 무엇이길래 결과가 다르게 나오는지 궁금합니다.
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
Pagesource에 명시적으로 드러나지 않은 정보의 크롤링
안녕하세요. 강의를 듣다가 제가 원하는 내용을 정확히 찾지 못해 문의드립니다. 현재 제가 크롤링하고싶은 데이터가 pagesource에 명시적으로 나오지 않는데요, 이러한 데이터입니다. url은 https://datalab.naver.com/local/trend.naver 인데요, 저렇게 마우스를 가져다대면 나오는 숫자들을 날짜와 함께 크롤링하고 싶습니다. 그런데 문제는 pagesource를 봐도 저런 숫자들이 어떤 태그 아래 저장되어 있는지 나오지 않네요. ctrl+f로 검색해보니 "연건동"같은 string은 아예 등장하지도 않구요. 이런 데이터를 크롤링하기 위해서 참고할 수 있는 강의가 있을까요?
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
C# 에서 selenium InternetExplorer 사용
유익한 강의에 먼저 감사드립니다 드리올 말씀은 [C#으로 구현할경우 selenium 과 크롬이 아닌 InternetExplorer]으로 코딩하여 크롤링하는 예제가 있는지 여쭙고자 합니다 현재 기개발되어있는 프로그램이 C#으로 되어있는데 동적으로 바뀐 웹페이지를 가져오지못하여 곤란한 상황입니다 파이썬으로 다시하려면 오픈일자를 못맞추게 되어 난감한 입장이라 부탁드려봅니다 가능하겠는지요? 답변이 비공개라면 이메일로 부탁드립니다 suryeon38@naver.com 감사합니다^^
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
정렬 옵션 바꾸기
강사님 안녕하세요. 부트캠프부터 잘 듣고 있습니다, 좋은 컨텐츠 감사드려요. 다름이 아니라 다음 뉴스 댓글이 조금 바뀐 것 같더라고요. 이제는 추천댓글이라고 10개 남짓만 떠서 여러번 더보기 클릭이 안되고, 댓글 정렬 방식을 먼저 변경해야만 가능합니다. 그래서 "찬반순" 버튼의 태그를 뽑아 ActionChains로 클릭할 생각이었어요. 그런데 해당 버튼의 태그인 div.cmt_box > ul.list_category > li.on > button > span 가 페이지 소스에 존재하지 않더라고요. 꼭 동적 데이터처럼요. 아래가 페이지 소스 화면입니다. 왜 이렇게 나오는 건가요? 이 버튼들의 태그를 뽑아내는 것은 불가능할까요? 조언 부탁드립니다.
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
[강력/최신 크롤링 기술: Scrapy 이해하기] 강의 관련 질문 남깁니다.
안녕하세요, 일단 질 좋은 강의를 들을 수 있게 해주셔서 감사합니다. 다름이 아니라, 해당 강의 11분 38초 가량에서 맥과 다르게 윈도우에서는 오류가 날 가능성이 있으며, 오류가 발생할 때 시도하라고 알려주신 마지막 방법인 visualstidio에서 다운로드를 하여 해결하려 했습니다. 이 때 visual studio install을 마친 후 보이는 위 그림 페이지에서 추가로 설치해주어야 하는 부분이 있는지 궁금합니다. 추가로, 만약 추가로 설치해주어야 하는 부분이 없다면, visual studio를 설치해주는 것만으로 해결이 되는지 궁금합니다.
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
xpath와 셀레니움을 활용하여 페이스북 크롤링하기 코드 질문
강의 코드를 그대로 따라했다고 생각했는데 왜 이런 오류가 발생하는지 잘 모르겠네요. login_button의 xpath 코드가 잘못되서 그런 줄 알고 u_0_f로 고쳐서 다시 해봐도 안됬습니다. 뭐가 문제일까요? 감사합니다
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
안녕하세요 수업자료 관련 질문입니다.
혹시 이번강의의 pdf 파일(Scrapy와 오픈 API) 도 올려주실 수 있을까요? 수업자료에서 다운 받으려고 하니 해당 pdf가 아닌 다른 pdf가 들어있는것 같아요 항상 좋은 수업 제공해주셔서 감사합니다!
- 해결됨현존 최강 크롤링 기술: Scrapy와 Selenium 정복
크롬드라이버 작동 후 꺼짐
셀레니움 모듈 설치 후 윈도우 c드라이버(C:/dev_python/Webdriver/chromedriver) 폴더에 크롬드라이버까지는 설치를 했고 아래 소스코드를 실행시키면 크롬 창이 열리긴 합니다. ============================================== from selenium import webdriver from selenium.webdriver.common.keys import Keys chromedriver = 'C:/dev_python/Webdriver/chromedriver' driver = webdriver.Chrome(chromedriver) ============================================== 문제는 열린 후에 저절로 종료가 되며 아래와 같은 에러 메시지가 뜨는데요.. --------------------------------------------------------------------------- WebDriverException Traceback (most recent call last) <ipython-input-22-3fda3c2e7dab> in <module> 3 4 chromedriver = 'C:/dev_python/Webdriver/chromedriver' ----> 5 driver = webdriver.Chrome(chromedriver) ~\anaconda3\lib\site-packages\selenium\webdriver\chrome\webdriver.py in __init__(self, executable_path, port, options, service_args, desired_capabilities, service_log_path, chrome_options, keep_alive) 74 75 try: ---> 76 RemoteWebDriver.__init__( 77 self, 78 command_executor=ChromeRemoteConnection( ~\anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py in __init__(self, command_executor, desired_capabilities, browser_profile, proxy, keep_alive, file_detector, options) 155 warnings.warn("Please use FirefoxOptions to set browser profile", 156 DeprecationWarning, stacklevel=2) --> 157 self.start_session(capabilities, browser_profile) 158 self._switch_to = SwitchTo(self) 159 self._mobile = Mobile(self) ~\anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py in start_session(self, capabilities, browser_profile) 250 parameters = {"capabilities": w3c_caps, 251 "desiredCapabilities": capabilities} --> 252 response = self.execute(Command.NEW_SESSION, parameters) 253 if 'sessionId' not in response: 254 response = response['value'] ~\anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py in execute(self, driver_command, params) 319 response = self.command_executor.execute(driver_command, params) 320 if response: --> 321 self.error_handler.check_response(response) 322 response['value'] = self._unwrap_value( 323 response.get('value', None)) ~\anaconda3\lib\site-packages\selenium\webdriver\remote\errorhandler.py in check_response(self, response) 240 alert_text = value['alert'].get('text') 241 raise exception_class(message, screen, stacktrace, alert_text) --> 242 raise exception_class(message, screen, stacktrace) 243 244 def _value_or_default(self, obj, key, default): WebDriverException: Message: unknown error: unable to discover open pages (Driver info: chromedriver=2.0,platform=Windows NT 6.2 x86_64) 에러의 원인이 무엇일까요?
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
PhantomJS 가 중단..
Important: PhantomJS development is suspended until further notice 라고 뜨네요. 추후 공지가 있을떄까지는 중단이라고 하는가 봅니다.
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
셀레니움 특정 태그 누락
안녕하세요. 강사님. 셀레니움 실습 중에 한가지 여쭤보고 싶은 부분이 생겨서요. 제가 특정 사이트에서 셀레니움으로 크롤링 테스트를 하고 있습니다. 해당 사이트에 있는 img 태그의 주소를 가져오는 것인데요. 페이지 다운을 하고, 로딩을 기다리는 작업까지 다 하여도 일부 img태그를 가져오지를 못합니다. 꼭 특정 img 태그만 누락되더라고요. 분명히 브라우저상에서 소스는 있는데요. 백번 넘게 시도했는데 특정 순서의 img 태그만 누락됩니다.. 그래서 driver.page_source로 파싱해서 통째로 txt 파일로 저장도 시켜봤습니다. 하지만 역시나 동일하게 해당 태그는 누락되어 있습니다.. a링크 아래에 ::before == $0 <img ~~~> </a> 이런 형태인데요. ::before == $0 이부분 때문인가 싶었지만 또 다른 이미지 태그는 조회가 되는걸보니 아닌 것 같고.. 원인을 찾기가 어렵네요~ 이런 경우는 왜 발생되는 건지 힌트를 주실 수 있을까요?
- 해결됨현존 최강 크롤링 기술: Scrapy와 Selenium 정복
강의 따라 했는데 selenium 설치가 안된것 같아요....
!pip install selenium 도 했고 (강의자료에 사전준비 1) 웹드라이버도 말씀해주신 경로에 설치 한거같은데 ( C:\dev_python\Webdriver) 아래와 같이 오류가 뜹니다....... 하.... 시작도 못하고 헤매니 너무 속상해요... 도와주세요