전체 소스코드
import requests
url = "http://nadocoding.tistory.com"
headers = {"User-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"}
res = requests.get(url, headers=headers)
res.raise_for_status()
with open("nadocoding.html", "w", encoding="utf8") as f:
f.write(res.text)
User agent
웹사이트에서는 접속하는 사용자의 정보를 알 수 있다
예를 들면 모바일버전과 pc버전의 화면이 다른 것 같이 말이다
사람이 접속하는 것이 아니라 크롤링, 스크래핑하는 컴퓨터가 접속한다고하면
부화가 걸릴 수 있고 정보를 뺏길 수 있기 때문에 접속을 차단할 수 있다
그래서 에러가 뜨는 것
이걸 user agent를 통해 해결할 수 있다
아래 사이트에 들어가면 현재 사용하고 있는 브라우저에서 접속하고 있는 user agent 정보가 나온다
https://www.whatismybrowser.com/detect/what-is-my-user-agent/
그러면 크롬에서 접속했을 때와 같이 제대로 페이지 내의 모든 정보를 가져올 수 있다
url = "http://nadocoding.tistory.com"
headers = {"User-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"}
res = requests.get(url, headers=headers)
앞에서는 .get() 안에 url만 넣었지만
url만 넣어서 에러가 뜨는 경우에는 headers=를 넣어주면 된다
headers에는 위의 사이트에서 가져온 user agent를
{"User-agent":"user agent 주소"} 안에 넣어주면 된다
'python > webscraping' 카테고리의 다른 글
[Python webscraping] #4 BeautifulSoup (0) | 2022.12.16 |
---|---|
[Python webscraping] #2 RegExp(정규식) (1) | 2022.12.16 |
[Python webscraping] #1 Requests (0) | 2022.12.16 |
댓글