一、Python 3.x版本后的urllib和urllib2
在Python 3以后的版本中,urllib2这个模块已经不单独存在,urllib2被合并到了urllib中,叫做urllib.request 和 urllib.error
urllib整个模块分为urllib.request,urllib.parse,urllib.error。
例:
其中urllib2.urlopen()变成了urllib.request.urlopen()
urllib2.Request()变成了urllib.request.Request()
二、urllib和urllib2模块之间的区别
在python中,urllib和urllib2不可相互替代的。
整体来说,urllib2是urllib的增强,但是urllib中有urllib2中所没有的函数。
urllib2可以用urllib2.openurl中设置Request参数,来修改Header头。如果你访问一个网站,想更改User Agent(可以伪装你的浏览器),你就要用urllib2.
urllib支持设置编码的函数,urllib.urlencode,在模拟登陆的时候,经常要post编码之后的参数,所以要想不使用第三方库完成模拟登录,你就需要使用urllib。
urllib一般和urllib2一起搭配使用
详细信息参考网址:https://blog.csdn.net/zd147896325/article/details/78957901
三、requests的使用
在我们使用python爬虫时,更建议用requests库,因为requests比urllib更为便捷,requests可以直接构造get,post请求并发起,而urllib.request只能先构造get,post请求,再发起。
import requests
url='https://www.baidu.com'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36',
}
get_response = requests.get(url,headers=headers,params=None)
post_response=requests.post(url,headers=headers,data=None,json=None)
print(post_response)
print(get_response.text)
print(get_response.content)
print(get_response.json)
get_response.text得到的是str数据类型。get_response.content得到的是Bytes类型,需要进行解码。作用和get_response.text类似。get_response.json得到的是json数据。总而言之,requests是对urllib的进一步封装,因此在使用上显得更加的便捷。
详细信息参考网址:https://blog.csdn.net/qq_38783948/article/details/88239109