网络爬虫之Requests库及爬取网页的通用代码框架
发布日期:2021-06-29 11:52:42 浏览次数:2 分类:技术文章

本文共 2369 字,大约阅读时间需要 7 分钟。

Requests库

7个主要方法

方法 说明
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

get方法

get方法介绍

requests.get(url, params=None, **kwargs)

  • url:拟获取页面的url
  • params:url中的额外参数,字典或字节流格式,可选
  • **kwargs:13个控制访问的参数,如下:
字段 说明 示例
params 字典或字节序列,作为参数增加到url中 kv = {'key1':'value1', 'key2':'value2'}
r = requests.request('GET','http://www.python123.io/ws', params=kv``print(r.url)
#https://www.python123.io/ws?key1=value1&key2=value2
data 字典、字节序或文件对象,作为Request的内容 kv = {'key1':'value1', 'key2':'value2'}
r = requests.request('GET','http://www.python123.io/ws', data=kv)
json JSON格式数据,作为Request的内容 kv = {'key1':'value1'}
r = requests.request('POST','http://www.python123.io/ws', json=kv)
headers 字典,HTTP定制头 hd = {'user-agent':'Chrome/10'}
r = requests.request('POST','http://www.python123.io/ws', headers=hd)
cookies 字典或cookieJar,Request中的cookie
auth 元组,支持HTTP认证功能
files 字典类型,传输文件 fs = {'file':open('test.xls', 'rb')}
r = requests.request('POST','http://www.python123.io/ws', files=fs)
timeout 超时时间,秒为单位 r = requests.request('GET','http://www.python123.io/ws', timeout=10)
proxies 字典类型,设定访问服务器,可以增加登陆认证 pxs = {'http':'http://user:pass@10.10.1:1234',
'https':'https://10.10.10.1:4321'}
r = requests.request('GET','http://www.python123.io/ws', proxies=pxs)
allow_redirects True/False,默认为True,重定向开关
stream True/False,默认为True,获取内容立即下载开关
varify True/False,默认为True,认证SSL开关
cert 本地SSL证书路径

### Response对象的属性

属性 说明
r.status_code HTTP请求的状态,200表示成功,404表示失败
r.text() HTTP响应内容的字符串形式,即,url对应的页面内容
r.encoding 从HTTP headers中猜测的响应内容编码格式
r.apparent_encoding 从内容中分析出的响应内容编码方式
r.content HTTP响应内容的二进制形式
r.raise_for_status() 如果不是200,产生requests.HTTPError

Requests库异常

异常 说明
requests.ConnectionError 网络连接错误异常,如DNS查询失败、拒绝连接等
requests.HTTPError Http错误异常
requests.URLRequired URL缺失异常
requests.TooManyRedirects 超过最大重定向次数,产生重定向异常
requests.ConnectTimeout 连接远程服务器超时异常
requests.Timeout 请求URL超时,产生超时异常

通用代码框架

import requestsdef get_html_text(url):    try:        r = requests.get(url, timeout=30)        r.raise_for_status()        r.encoding = r.apparent_encoding        return r.text    except :        return ''url = 'http://www.baidu.com'text = get_html_text(url)#得到页面text,可进一步处理

转载地址:https://blog.csdn.net/zzl819954692/article/details/80054676 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Sublime text3 Mac 环境下运行Python代码无效解决办法
下一篇:用Python统计中英文词频

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月06日 02时07分40秒