网络爬虫之Requests库及爬取网页的通用代码框架

版权声明:本文为博主原创文章,转载时必须在文首位置注明原文链接 https://blog.csdn.net/zzl819954692/article/details/80054676

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 requests

def 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,可进一步处理
阅读更多

扫码向博主提问

AA岁月静好AA

非学,无以致疑;非问,无以广识
去开通我的Chat快问
换一批

没有更多推荐了,返回首页