Python网络爬虫.2(笔记)
笔记均是观看慕课视频所记录的。
Requests库的安装
在命令提示符窗口(cmd)输入pip install requests安装Requests库。
安装成功后,会显示Successfully installed requests -2.13.0
打开IDLE,在python shell中输入代码:
>>> import requests
>>> r=requests.get("http://www.baidu.com")#访问百度网页
>>> r.status_code#如果状态码=200,访问成功,反之,失败
200
>>> r.encoding='utf-8'#更改编码
>>> r.text#显示抓取的数据
方法 | 说明 |
---|---|
requests.request() | 构造一个请求,支撑以下各方法的基础方法 |
requests.get() | 获取HTML网页的主要方法,对应于HTTP的GET |
requests.head() | 获取HTML网页头信息的方法,对应与HTTP的HEAD |
requests.post() | 向HTML网页提交POST请求的方法,对应于HTTP的POST |
requests.put() | 向HTML网页提交PUT请求的方法,对应于HTTP的PUT |
requests.patch() | 向HTML网页提交局部修改请求,对应于HTTP的PATCH |
requests.delete() | 向HTML网页提交删除请求,对应于HTTP的DELETE |
获取网页最快的方法:
该流程图是使用dot语言所写,在此附上源码。
digraph demo{
frontname="Microsoft YaHei"
node[fontname="Microsoft YaHei"]
edge[fontname="Microsoft YaHei"]
"r=requests.get(url)"->"Request"[shape=box,label="构造一个向服务器请求资源的Request对象(对象是由Request库内部生成的)",labelfontcolor=blue]
"r=requests.get(url)"->"Response"[shape=box,label="返回一个包含服务器资源的Request对象",labelfontcolor=blue]
}
requests.get(url,params=None,**kwargs)
这个语句基本上可爬取网页上所有数据
url:拟获取页面的url链接
params:url中的额外参数,字典或字节流格式,可选
**kwargs:12控制访问的参数
Response对象的属性
属性 | 说明 |
---|---|
r.status_code | HTTP请求的返回状态,200表示连接成功,(非200)404失败 |
r.text | HTTP响应内容的字符串形式,即url对应的页面内容 |
r.encoding | 从HTTP header中猜测的响应内容编码方式 |
r.apparent_encoding | 从内容中分析出的响应内容编码方式(备选编码方式) |
r.content | HTTP响应内容的二进制形式 |
实例
#查看编码
>>> r.encoding
'ISO-8859-1'
>>> r.apparent_encoding
'utf-8'
>>> r.encoding='utf-8'
>>> r.text#正常文字显示
r.encoding:如果header中不存在charset,则认为编码为ISO-8859-1(这个编码不能解析中文,访问百度时默认的编码是这个)
r.apparent_encoding:根据网页内容分析出的编码方式(内容分析比r.encoding更加准确)