学习目标:掌握定向网络数据爬取和网页解析的基本能力
Requests库安装:cmd
pip install requests
IDLE中
Import requests
r = requesrs.get("http://www.baidu.com")
r.status_code #200表示访问成功
r.encoding='utf-8'
r.text
Requests库的7个主要方法
r = requests.get(url)
构造一个向服务器请求资源的Requests对象
返回一个包含服务器资源的Reponse对象
完整方法:requests.get(url,params=None,**kwargs)
url:拟获取页面的url链接
params:url中的额外参数,字典或字节流格式,可选
**kwargs:12个控制访问的参数
method:请求方式
GET HEAD POST PUT PATCH delete OPTIONS
**kwargs:控制访问的参数,均为可选项
1.params:字典或字节序列,作为参数添加到url中
2.data:字典、字节序列或文件对象,作为Request的内容
3.json:JSON格式的数据,作为Requests的内容
4.header:字典,HTTP定制头
5.cookies:字典或CookieJar,Request中的cookie
6.auth:元组,支持HTTP认证功能
7.file:字典类型,传输文件
8.timeout:设定超时时间,秒为单位
9.proxies:字典类型,设定访问代理服务器,可以添加登录认证
10.allow_redirects:True/False,默认为True,重定向开关
11.stream:True/False,默认为True,获取内容立即下载开关
12.verify:True/False,默认为True,认证SSL证书开关
13.cert:本地SSL证书路径
r.encoding:如果header中不存在charest,则认为编码为ISO-8859-1
r.apparent_encoding:根据网页内容分析出的编码方式
网络链接不稳定经常发生异常
r.raise_for_status():如果不是200,产生异常requests.HTTPError
爬取网页的通用代码框架
import requests
def getHTMLTest(url):
try:
r=requests.get(url,timeout=30)
r.raise_for_status() #如果状态不是200,引发HTTPError异常
r.encoding = r.apparent_encoding
return r.text
except:
return "产生异常"
HTTP URL的理解:
URL是通过HTTP协议存取资源的Internet路径,一个URL对应一个数据资源