728x90
문제점
특정 사이트의 댓글을 크롤링할때 문제가 발생한다.
selenium을 써도 해결이 안 된다.
iframe, #document로 구성된 부분에 댓글이 들어가 있다. 문제는 이 안쪽 부분은 접근이 불가능하다는 것이다.
그러면 어떻게 해야할까?
해결책을 알게됐다.
iframe 내부에 있는 src 링크로 다시 들어간다. 거기서 selenium 크롤링을 다시 진행하면 된다.
새롭게 html, body 등이 구성되고 element에 접근이 가능한 걸 볼 수 있다.
핵심은 driver.get으로 iframe 내부 링크에 접속하는 것이다.
3 시간 삽질 결과 공유 끝
번외로 마약베개 리뷰 크롤링 예제를 공유한다.
from selenium import webdriver
import time
options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument('window-size=1920x1080')
options.add_argument('disable-gpu')
options.add_argument('User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36')
options.add_argument('window-size=1920x1080')
options.add_argument('ignore-certificate-errors')
driver = webdriver.Chrome('/Users/dhkim/PycharmProjects/chromedriver',
chrome_options=options)
i = 1
review_text = []
while i < 3000:
driver.get(f'https://review4.cre.ma/bodyluv.kr/products/reviews?product_code=44&iframe_id=crema-product-reviews-1&widget_style=&app=0&parent_url=https%3A%2F%2Fbodyluv.kr%2Fproduct%2F3%25EC%25B0%25A8-renewal-%25EB%25B0%2594%25EB%2594%2594%25EB%259F%25BD-%25EB%25A7%2588%25EC%2595%25BD%25EB%25B2%25A0%25EA%25B0%259C%2F44%2Fcategory%2F1%2Fdisplay%2F2%2F%3Fcrema-product-reviews-1-page%3D1&nonmember_token=&secure_device_token=V22e79cca7695db24d9472d3f54924cada9a0644ce8bf98a2c075119db5233df50&page={i}&iframe=1')
time.sleep(1)
for element in driver.find_element_by_class_name('reviews-product').find_elements_by_class_name('products_reviews_list_review'):
try:
more = element.find_element_by_class_name('mall-link-color')
more.click()
time.sleep(0.5)
except:
pass
try:
review_text.append(element.find_element_by_class_name('products_reviews_list_review__message_content').text)
except:
print(f'len_reviews : {len(review_text)}')
continue
if i>0 and i%10 == 0:
print(review_text[i-10:i+1])
with open('results.txt', 'a') as writer:
for l in review_text[i-10:i+1]:
writer.write(l)
i += 1
'Data handling > Web crawling' 카테고리의 다른 글
[selenium] python, 구글 이미지 크롤링하기 (원본화질, 고화질) (0) | 2021.02.26 |
---|---|
DevToolsActivePort file doesn't exist error 해결법 (1) | 2021.02.19 |
[scrapy] 403 error 발생시 대처법 (0) | 2021.02.09 |
[크롤링] 엄청 쉽고 간단한 크롤링 방법. 꿀팁. 라이브러리 필요 없음 (0) | 2020.09.29 |
[오픈 Api 이용하기] 금융위원회_기업기본정보 python, 공공 데이터 (2) | 2020.07.01 |