【Rollo的Python之路】Python 爬虫系统学习 (二) Requests 模块学习

2020-12-13 02:19

阅读:436

YPE html>

标签:系统   status   ati   app   btn   hid   x86   www   cti   

Requests模块学习:

1.0  Requests 初识

Requests 模块是一个第三方的库,首先我们要安装Requests.用pip安装,先看一下pip是哪个python 的版本。

 

pip --version

 

然后用pip安装就OK

pip install requests

 

开始要导入 Requests 模块

import requests

然后我们试一下:

import requests
results = requests.get(https://www.baidu.com)

然后我们看一下得到的源码

results.text
\r\n




ç\x99¾åº¦ä¸\x80ä¸\x8bï¼\x8cä½\xa0å°±ç\x9f¥é\x81\x93

å\x85³äº\x8eç\x99¾åº¦ About Baidu

©2017 Baidu ä½¿ç\x94¨ç\x99¾åº¦å\x89\x8då¿\x85读  æ\x84\x8fè§\x81å\x8f\x8dé¦\x88 äº¬ICPè¯\x81030173å\x8f· 

\r\n

源码里面有一些是乱码,这是因为我们没有使用解码方式,而是requests模式自己认为的解码方式解的。我们看来是

results.encoding

 

要想到得正确的代码:用utf-8解码就OK

1 results.encoding = utf-8
2 results.text
3 
4 
5 \r\n 




百度一下,你就知道

关于百度 About Baidu

©2017 Baidu 使用百度前必读  意见反馈 京ICP证030173号 

\r\n

 

这里要注意:

1.0 results.text 这个地方的text是一个属性,属性调用不用要(),大多数情况是如果是名词的话,那这个名词基本上是属性,不用()

2.0 reuqests.get() 这个地方的get是一个方法,方法调用要用(),大多数情况 是如果 是动词的话,那个动词基本上都是方法,都要用()

3.0 我们自己写程序的时候也要遵守这个原则,这样的话,方便以后维护。

 

results.text可以得到源码,results.content也可以同样得到源码,我们来试一下:

>>> results.content
b\r\n 




\xe7\x99\xbe\xe5\xba\xa6\xe4\xb8\x80\xe4\xb8\x8b\xef\xbc\x8c\xe4\xbd\xa0\xe5\xb0\xb1\xe7\x9f\xa5\xe9\x81\x93

\xe5\x85\xb3\xe4\xba\x8e\xe7\x99\xbe\xe5\xba\xa6 About Baidu

©2017 Baidu \xe4\xbd\xbf\xe7\x94\xa8\xe7\x99\xbe\xe5\xba\xa6\xe5\x89\x8d\xe5\xbf\x85\xe8\xaf\xbb  \xe6\x84\x8f\xe8\xa7\x81\xe5\x8f\x8d\xe9\xa6\x88 \xe4\xba\xacICP\xe8\xaf\x81030173\xe5\x8f\xb7 

\r\n

他得到的是一个byte类型的数据。

然后用 decode转码就得到str类型的数据:decode就是动词,是方法,要(),默认utf-8,

>>> results.content.decode()
\r\n 




百度一下,你就知道

关于百度 About Baidu

©2017 Baidu 使用百度前必读  意见反馈 京ICP证030173号 

\r\n

 

这里要注意:

requests中解决编码与解码的方法:

1.0 首先选择-- response.content.decode()  默认使用utf-8,80%是utf-8

2.0 如果不行--response.content.decode(‘gbk‘),

3.0 还是不行--response.text 因为get方法会自动检测代码的编码方式,虽然成功率很低,但是最后这是最后一击了

4.0 response.text 可以修改编码方式: response.encoding = ‘gbk‘

 

OK,requests除了get请求还有其他请求:

HTTP POST,(这个用于有cookie与session的网站)

HTTP PUT,

HTTP DELETE,

HTTP HEAD,

>>> r = requests.post(http://www.baidu.com, data = {key:value})
>>> r = requests.put(http://www.baidu.com/put, data = {key:value})
>>> r = requests.delete(http://www.baidu.com/delete)
>>> r = requests.head(http://www.baidu.com/get)
>>> r = requests.options(http://www.baidu.com/get)

2.0 Requests URL构造方法:

 

【Rollo的Python之路】Python 爬虫系统学习 (二) Requests 模块学习

标签:系统   status   ati   app   btn   hid   x86   www   cti   

原文地址:https://www.cnblogs.com/rollost/p/11031618.html


评论


亲,登录后才可以留言!