2021. 8. 4. 14:42
파이썬 requests로 크롤링 안될 때 해볼 수 있는 방법 Programming/Python2021. 8. 4. 14:42
728x90
반응형
파이썬 requests 라이브러리를 이용하여 크롤링을 할때
현재 내가 검색해서 보여지는 창의 스크립트가 아닌
다른 내용의 스크립트가 리턴 될 때도 있습니다.
그럴때는
requests 와 함께 headers 정보의 user-agent 를 같이 넘겨주게 되면 해결 할 수 있어요.
아래는 구글 영화 정보 사이트의 인기차트 내용에 대해서 보는 것인데요.
헤더 정보를 넣는냐 아니냐에 따라서 정보가 달라지는 것을 볼 수 있습니다.
[헤더 정보를 넣었을 때]
import requests
from bs4 import BeautifulSoup
url = "https://play.google.com/store/movies/top"
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Edg/92.0.902.62'}
res = requests.get(url, headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')
movie_list = soup.select('#fcxH9b > div.WpDbMd > c-wiz > div > c-wiz > div > div > c-wiz > c-wiz > c-wiz > div > div.ZmHEEd > div:nth-child(1) > c-wiz > div > div > div.RZEgze > div > div > div.bQVA0c > div > div > div.b8cIId.ReQCgd.Q9MA7b > a > div')
movie_list
[<div class="WsMG1c nnK0zc" title="A Quiet Place Part II">A Quiet Place Part II</div>]
[헤더 정보를 빼고 호출하였을때]
import requests
from bs4 import BeautifulSoup
url = "https://play.google.com/store/movies/top"
res = requests.get(url)
soup = BeautifulSoup(res.text, 'html.parser')
movie_list = soup.select('#fcxH9b > div.WpDbMd > c-wiz > div > c-wiz > div > div > c-wiz > c-wiz > c-wiz > div > div.ZmHEEd > div:nth-child(1) > c-wiz > div > div > div.RZEgze > div > div > div.bQVA0c > div > div > div.b8cIId.ReQCgd.Q9MA7b > a > div')
movie_list
[<div class="WsMG1c nnK0zc" title="F9: The Fast Saga">F9: The Fast Saga</div>,
<div class="WsMG1c nnK0zc" title="Rick and Morty">Rick and Morty</div>,
<div class="WsMG1c nnK0zc" title="Gotron Jerrysis Rickvangelion">Gotron Jerrysis Rickvangelion</div>]
헤더정보에 대해서는 아래 사이트에 들어가면 본인의 인터넷창에 대한 정보가 나옵니다.
그걸 복사해서 사용하시면 됩니다.
What's My User Agent? (whatmyuseragent.com)
728x90
반응형
'Programming > Python' 카테고리의 다른 글
판다스 데이터 프레임 각 셀 별 갯수 구하기, pandas cell length in dataframe (0) | 2021.08.20 |
---|---|
BeautifulSoup을 이용한 태그의 특정 텍스트, 속성 값 불러오기 (0) | 2021.08.05 |
파이썬 스케쥴(일정) 라이브러리 Schedule (0) | 2021.08.04 |
(1292): Truncated incorrect DOUBLE value (0) | 2021.06.28 |
selenium, pyautogui 이용시 한글 입력 (0) | 2021.06.11 |