이거 웹 스크래핑이 되지 않는데 이유를 몰겠습니다ㅠㅠ
글쓴이: rooneei / 작성시간: 월, 2021/02/15 - 12:01오전
import requests from bs4 import BeautifulSoup url = "https://search.daum.net/search?w=img&nil_search=btn&DA=NTB&enc=utf8&q=고양이%20상" response = requests.get(url) response.raise_for_status() soup = BeautifulSoup(response.text, "lxml") images = soup.find_all("img", attrs={"class" : "thumb_img"}) for image in images: print(image["src"])
왜 안되는 걸까요,....
Forums:
URL을 requests.get()한 결과물은,
URL을 requests.get()한 결과물은, URL을 브라우저로 띄운 결과물과는 좀 다른 모습이네요.
print(soup) 해서 HTML을 잘 살펴보시면 이미지검색 결과가 태그들로 만들어져 있지 않고 자바스크립트 내의 리스트 형태로 나옵니다. 태그가 없는 상태이므로 soup.find_all()이 아무것도 못찾게 되는 것이죠.
이 상태에서도 이미지 주소들은 나오니 정규식을 써서 아래와 같이 한다든지 해서 추출하시면 되겠습니다. 정규식은 대충 만든 것이니 목적에 맞게 다듬어 쓰시고요.
이렇게 만든 이미지 목록이 브라우저로 띄운 이미지 목록과 다르다면, selenium 등으로 브라우저를 통해 soup 내용물을 확보해서 원래대로 태그를 찾으셔도 되겠습니다.
댓글 달기