打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python网络爬虫学习基础笔记

python requests库爬虫基础

本次学习的python爬虫所使用的是requests
下面就是requests库的7种主要方法

方法名说明
requests.request()构造一个请求,支撑以下各方法的基础方法
request.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()方法简介

部分语法r=requests.get(url)
表示构造一个向服务器请求资源的Request对象,返回一个包含服务器资源的Respon对象
完整语法requests.get(url,params=None,**kwargs)

get()方法参数说明
url拟获取页面的URL链接
paramsurl中的额外参数,控制字典或字节流格式(可选)
**kwargs12个控制访问参数

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

基本示例

#在python shell中进行逐行输入import requestsr=requests.get("http://www.baidu.com")r.status_code#返回了200表示访问成功r.text#输出访问内容--发现有部分中文乱码r.encoding#发现编码为ISO-8859-1r.apparent_encoding#发现内容编码为UTF-8r.encoding = 'utf-8'#将读取编码改为utf-8r.text#此时发现输出内容正常

r.encoding:如果header中不存在charset,则认为默认编码为ISO-8859-1
r.apparent_encoding:根据网页内容分析出的编码方式


Requests库异常

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

Response异常

异常说明
r.raise_for_status()如果不是200,产生异常 requests.HTTPError

爬取网页通用代码框架

import requestsdef getHtmlText(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(getHtmlText(url))

通过r.raise_for_status()以及try--except捕捉访问异常


requests.requests控制访问的参数

参数名说明
params字典或字节序列,作为参数增加到url中
data字典,字节序列或文件对象,作为Request的内容
jsonJSON格式的数据,作为Request的内容
headers字典,HTTP定制头(模拟浏览器进行访问)
cokies字典或CpplieJar,Request中的cookie
auth元祖,支持HTTP认证功能
files字典类型,传输文件
timeout设定超时时间,秒为单位
proxies字典类型,设定访问代理服务器,可以增加登陆认证,防止爬虫反追踪
allow_redirectsTrue//False,默认为True,重定向开关
streamTrue/False,默认为True,获取内容立即下载开关
verifyTrue/False,默认为True,认证SSL证书开关
cert本地SSL证书路径"""

params参数的例子:
例:kv={'key1':'value','key2':'value2'} r=requests.request('GET','http://python123.io/ws',params=kv) print(r.url)
输出为:http://python.io/ws?key1=value1&key2=value2

各方法语法以及需要的控制参数

语法可选额外控制参数
requests.get(url, params=None, **kwargs)12
requests.head(url, **kwargs)12
requests.post(url, data=None, json=None, **kwargs)12
requests.put(url, data=None, **kwargs)12
requests.patch(url, data=None, **kwargs)12
requests.delete(url, **kwargs)12
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python爬虫模块:Requests详细教程(内含案例)
爬虫-使用Python3爬取360DOC文档
爬虫入门——原来爬虫这么简单
Python爬虫从入门到精通(三)简单爬虫的实现
python requests的安装与简单运用
python网络爬虫常用技术
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服