多语言展示
当前在线:1877今日阅读:86今日分享:14

Python3 http请求获取url的几种方法

介绍Python3发送http请求(GET请求)获取url内容的几种方法,可以使用urllib,requests,可以带cookie或则不带cookie或者自动处理set-cookie。
工具/原料

Python 3.6

使用urllib.request
1

第一种是不带cookie,不带自定义请求头,直接获取url,使用如图所示的:urllib.request.urlopen方法。url此时只需要是一个链接字符串即可。要获取响应文本,先使用响应的read(),接着使用decode()解码得到字符串。

2

第二种是带有cookie,可以填写自定义请求头的url获取。将自定义请求头写成字典(如图是my_headers)。接着,使用urllib.request.Request(url, headers=my_headers)创建一个http请求对象。然后使用urllib.request.urlOpen(Request对象)发送http请求。后续步骤相同。

3

第三种方法是使用具有一定自动Cookie设置功能的HTTPCookieProcessor。代码如图,需要使用urllib.request.build_opener创建一个opener对象。接着使用opener发送HTTP请求。

使用requests
1

要使用requests,需要先安装这个模块。如果是PyCharm,在开头写import requests会自动提醒安装这个模块。使用requests.session创建一个会话对象。这个对象的好用之处在,它会根据http响应头自动设置下次的请求头数据。当然了,一开始需要的请求头数据还是要自行添加。如图是不带任何自定义请求头,访问同一个url两次,第二次已经带上了第一次响应的设定。

2

在这个requests模块内,get方法实际上是request()方法的包装。关于参数的提示要参考request()函数的参数(第一个参数method除外)

3

如果要带有自定义的请求头,需要定义一个字典对象(如图是myheaders),然后每个get写为:session对象.get(url, headers=自定义http请求头字典)自定义的请求头会覆盖默认值。

4

如果要带上自定义cookie,最好单独一个字典对象,设置get的cookies参数。如果希望cookie覆盖掉默认设置的所有cookie项,那就把Cookie加在请求头字典对象里。

注意事项

要收发http请求还有很多方式,本经验只介绍了其中几种。

推荐信息