安装requests库
win10环境下,用管理员权限启动cmd控制台。输入
pip install requests
安装requests库,等待安装完成即可。
在IDLE中直接import requests 就可以使用了。
第一个网络爬虫
def Crawler (url,user_agent='wswp',num_retries=2,proxies=None):
head={'User-Agent':user_agent}
try:
dow = requests.get(url,headers=head,proxies=proxies)
html = dow.text
if dow.status_code >=400:
print('download error:',html)
html = None
if num_retries and 500 <= dow.status_code <600 :
return Crawler(url,num_retries - 1)
except requests.exceptions.RequestExcption as e:
print('download error:',e.reason)
html = None
requests的主要使用方法
import requests
r=requests.get(url,params=None,**kwargs)
'''
获取HTML网页的主要方法,对应http的get
url:获取页面的url链接
params:url中的额外参数,字典或字节流格式
**kwargs:12个控制访问参数
'''
r=requests.post(url,data=None,json=None,**kwargs)
#向HTML网页提交post请求信息
r=requests.put(url,data=None,**kwargs)
#向html网页提交put请求
r=requests.delete(url,**kwargs)
#向网页提交删除请求
r=requests.head(url,**kwargs)
#获取网页头信息
r=requests.patch(url,data=None,**kwargs)
#向网页提交局部修改请求
r=requests.request(method,url,**kwatges)
'''
构造一个请求
method:请求方式,对应get/put/post等7种
GET\HEAD\POST\PUT\PATCH\delete\OPTIONS
**kwarge可选参数:
params:字典或字节序列,作为参数增加到url
data:字典、字节序列或文件对象,作为Request的内容
json:JSON格式数据,作为Request内容
headers:字典,HTTP定制头
cookies:字典或CookieJar,Request种的cookie
auth:元组,支持HTTP认证
files:字典类型,传输文件(用于提交文件)
timeout:设定超时时间,秒
proxies:字典类型,设定代理服务器
allow_redircts:默认True,重定向开关
stream:默认True,获取内容立即下载开关
verify:默认True,认证SSL证书开关
cert:本地SSL证书路径
'''
requests的属性
调用requests.get()会向服务器发出一个Request请求,返回一个Response对象,该对象包含请求页面所有信息。
Response对象属性
r = requests.get(url)
属性 | 说明 |
---|---|
r.status_code | HTTP请求返回状态,200表示链接成功,404表示失败(500~599一般是服务器端出现问题) |
r.text | HTTP响应内容的字符串形式 |
r.encoding | 从HTTP header中猜测的内容编码方式 |
r.apparent_encoding | 从内容中分析内容编码 |
r.content | HTTP响应2内容的二进制形式 |
r.raise_for_status() | 如果status_code返回不是200,产生requests.HTTPError异常 |
r.headers | 获取响应头部 |
r.cookies | 获取服务端的cookies |
r.cookies.gett_dict() | 获取字典形式的cookies信息 |
r.cookies.items | 获取列表的cookies信息 |
r.url | 获取请求的url |
r.history | 获取跳转前2的url |
r.json() | 获取json数据 |
requests的异常
异常 | 说明 |
---|---|
requests.ConnectionError | 网络链接错误 |
requests.HTTPError | HTTP错误 |
requests.URLRequired | URL缺失 |
requests.TooMantRedirects | 超过最大重定向次数 |
requests.ConnectTimeout | 链接远程服务器超时 |
requests.Timeout | 请求超时 |
备注
requests库的文档地址:requests文档
requests库源代码查看地址:requests源代码