본문 바로가기
대학원 공부/programming language

Python : Crawling : requests vs urllib.parse & request

by 월곡동로봇팔 2020. 4. 21.

import requests

import requests
session = requests.Session()
headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit 537.36 (KHTML, like Gecko) Chrome",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
}
url = "https://www.nature.com/search?q=gold+nanoparticle+synthesis&page=1"
html = session.get(url, headers=headers).content
print(url)
soup = BeautifulSoup(html, 'html.parser')

import urllib

import urllib.request as req
from fake_useragent import UserAgent

# make a header information
opener = req.build_opener()

# User-Agent record information
opener.addheaders = [('User-agent', UserAgent().ie)]

# header information 
req.install_opener(opener)

res=req.urlopen(url)
print(res)

soup = BeautifulSoup(res, 'html.parser')

두 module의 차이점은 단 하나, urllib으로 했을 때는 되지 않았고, requests 로 했을 때는 잘 됬다.

 

두 모듈의 workflow는 같다. requests, urllib 모두 header를 붙일 수 있고, url을 입력한 후, html을 가져오는 방식이다.

즉, 이 module을 했을 때, access 할 수도 있고, access 못할 수도 있고 여러가지 차이점이 존재한다.

하지만, requests가 조금 더 new version이기에, 나는 requests를 더 선호한다.

 

하지만, 정답은 없다. requests와 urllib는 여러번 해보고, 잘 되는 module을 쓰면 그만이다.

 

requests 모듈에 대한 블로그 정리글이다.

https://dgkim5360.tistory.com/entry/python-requests

 

Python requests 모듈 간단 정리

Python에서 HTTP 요청을 보내는 모듈인 requests를 간단하게 정리하고자 한다. 0. 기본적인 사용 방법 import requests URL = 'http://www.tistory.com' response = requests.get(URL) response.status_code respo..

dgkim5360.tistory.com

댓글