Programming/Python

파이썬 requests로 크롤링 안될 때 해볼 수 있는 방법

패치#노트 2021. 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)

 

What's My User Agent?

Your IP Address 121.53.80.255 Country Name: Korea, Republic of City Name: Latitude: 37.5112 Longitude: 126.9741

whatmyuseragent.com

728x90
반응형