Request库-Python爬虫(一)

Requests库


安装Requests

pip install requests

Resquests库的7个主要方法

方法说明
requests.request()构造一个请求, 支撑以下各方法的基础方法
requests.get()获取HTML网页的主要方法
requests.head()获取HTML网页头信息的方法
requests.post()向HTML网页提交POST请求的方法
requests.put()向HTML网页提交PUT请求的方法
requests.patch()向HTML网页提交局部修改请求
requests.delete()向HTML页面提交删除请求

一. get()方法

r = requests.get(url)

上面代码返回Response对象

1.1 Response对象


Response对象: 包含爬虫返回的内容

Response对象的属性

属性说明
r.status_codeHTTP请求的返回状态, 200表示链接成功, 404表示失败
r.textHTTP响应内容的字符串形式, 即 url对应的页面内容
r.encoding从HTTP header中猜测的响应内容编码方式
r.apparent_encoding从内容中分析出的响应内容编码方式(备选编码方式)
r.contentHTTP响应内容的二进制形式

1.2 Resquest对象


Request库的异常

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

1.3 爬取网页的通用代码框架


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 "产生异常"

# 只有在这个文件下运行才执行, 当在其他文件导入时是不执行的
if __name__ == '__main__':
    url = "http://www.baidu.com"
    print(getHTMLTest(url))

二. Request主要方法解析


requests.get(method, url, **kwargs)
**kwargs: 控制访问的参数, 均为可选项

举例:

kv = {'key1 : 'value1', 'key2' : 'values2'}
r = requests.request('GET', 'http://python123.io/ws', params=kv)
print(r.url)
# http://python123.io/ws?key1=value1&key2=value2

#模拟Chrome10来访问网站
hd = {'User-Agent':'Chrome/10'}
r = requests.request('POST', 'http://python123.io/ws', headers=hd)

#向服务器传输文件
fs = {'file' : open('data.xls', 'rb')}
r = requests.request('POST', 'http://python123.io/ws', file=fs)

# 设置超时时间
r = requests.request('GET', 'http://www.baidu.com', timeout=10)

pxs = {'http':'http://user:pass@10.11.11.1:1231',
		'https':'https://11.10.10.1:3212'}
r = requests.request('GET', 'http://www.baidu.com', proxies=pxs)
参数作用
params字典或字节序列, 作为参数增加到url中
data字典,字节序列或文件对象, 作为Request的内容
jsonJSON格式的数据, 作为Request的内容
headers字典, HTTP定制头
cookies字典或CookieJar, Request中的cookie
auth元祖, 支持HTTP认证功能
files字典类型, 传输文件
timeout设定的超时时间, 秒为单位
proxies字典类型, 设定访问代理服务器, 可以增加登录认证
allow_redirects:True/False默认为True,重定向开关
stream:True/False默认为True,获取内容立即下载开关
verify:True/False默认为True,认证SSL证书开关
cert本地SSL证书路径
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值