트위터 크롤링 html 코드가 많이 바뀐거 같아요
641
작성한 질문수 5

트위터 크롤링 예제 해보고 있는데요 현재 20.7.21일 기준으로 사이트 코드가 다 바뀐거 같은데 현재는 컨테이너 클래스가 안보여서요 ㅠ 위에 코드 보니까 react로 뜨는데 react로 바뀌어서 코드가 기존 html코드 처럼 안나오는걸까요? 이런 경우 어떻게 해야될지 몰르겠어요
답변 1
0
안녕하세요. 일단 웹사이트 변경 부분을 알려주셔서 감사합니다.
실제 웹사이트는 수시로 변경되는 부분은 있어요. 아무래도 실제 웹사이트를 크롤링했을 때의 경험을 드리고 싶었는데, 이 부분은 양해를 부탁드려요. 그렇다해도 여러가지 시도를 해보시면서 직접 해보시는 것이 가장 좋습니다. 이 부분은 꼭 유념해주시면 좋을 것 같아요. 해당 부분은 너무 수시로 바뀌는 부분이 있어서, 다른 부분을 또 고민해보겠습니다.
그렇다해도 어떻게 새로운 사이트에서 알맞은 태그를 선택할 수 있을지, 또 selenium 과 어떻게 같이 쓸 수 있는지, 참고할 수 있는 부분이기 때문에, 우선은 참고하시면 더 좋을 것 같습니다.
일단 변경된 부분은 다음과 같이 실행하시면 됩니다. 가볍게 구조를 보면서, 크롬 개발자모드로 CSS Selector 를 참조한 후,
article 부분에 실제 내용이 있음을 확인하고, 해당 article 태그 안에서 실제 트윗 내용만 선택하기 위해서
해당 트윗 내용을 선택해서 크롬 개발자모드에서 추출한 CSS Selector 를 관련 트윗들을 모두 트윗할 수 있도록 특정 부분만 선택한 부분을 다 일반적인 태그로 변경하였습니다.
그리고 다음과 같은 코드로 정상 동작함을 확인하였습니다.
감사합니다.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
# 드라이버 생성 방법1 (selenium)
# chromedriver = 'C:/dev_python/Webdriver/chromedriver.exe' # 윈도우
chromedriver = '' # 맥
driver = webdriver.Chrome(chromedriver)
driver.get("http://www.twitter.com")
elem = driver.find_element_by_name("session[username_or_email]")
elem.clear()
elem.send_keys("")
elem = driver.find_element_by_name("session[password]")
elem.send_keys("")
elem.send_keys(Keys.RETURN)
time.sleep(5)
data = driver.find_elements_by_css_selector('#react-root > div > div > div > main > div > div > div > div > div > div > div > div > section > div > div > div > div > div > div > article > div > div > div > div > div > div:nth-child(2) > div > div > span')
for item in data:
print (item.text, '\n')
print (driver.current_url)
print (driver.title)
driver.quit()
코딩을 잘 따라 한 것 같은데 오류가 발생하는 것 같습니다
0
626
1
scrapy를 jupyter 환경에서 할 수 있나요
0
360
1
[실전 크롤링: scrapy 크롤링 팁] 질문있습니다.
0
313
1
[실전 크롤링: 지마켓 크롤링하며, scrapy 실전 활용법 익히기1] 5분50초쯤 질문
0
221
1
[강력/최신 크롤링 기술: Scrapy 로 지마켓 크롤링하기1] 관련 질문
0
279
1
xml을 parsing할때 <을 < 로 인식합니다.
0
335
1
pipelines.py에서 process_item내에서 print문이 작동을 하지 않네요 ㅠ
0
292
3
PhantomJS 문의
0
294
1
selenium 문의
0
329
1
브라우저 제어해서 크롤링하기 - 처음강의 마지막부분 문의
0
3004
1
on error 해결 방법 질문
0
356
1
[팁] 윈도우 cmd 커맨드
0
347
1
[팁]Chrome User Agent 아는법
0
328
1
실전 크롤링: 브라우저를 제어해서 트위터 사이트 로그인 하기 질문
0
254
1
동영상 강의 만드실 때 사용한 툴을 알려주실 수 있을까요?
0
237
1
CSS Selector 에서 질문이 있습니다.
0
435
2
pip install scrapy 오류
0
484
1
셀레니움 실행불가
0
1578
1
실전 크롤링: XPATH와 Selenium 활용해서 페이스북 로그인 하기 에서 질문이 있습니다.
0
227
1
언제 get_text()를 사용하고 또 언제 .text를 사용하나요?
0
287
1
강의교안자료 받을수있을까요?
0
263
1
[강의 9:27관련 질문] price, title 열 위치
0
160
1
div에 있는 클래스가 2개이면 어떻게 하나요?
0
368
1
css 셀렉터에 대해 질문이 있습니다.
0
147
1





