Python学习之网络爬虫(一)Requests库与Robots协议
前言大二下学期初在中国慕课网站刷过一遍北京理工大学嵩天老师的Python网络爬虫与信息提取,当时看的仓促,没有认真的做笔记整理。今天对于这门网课的知识点做一个归纳整理,供以后爬虫参考。一、“网络爬虫”课程内容导学The website is the APIpython网络爬虫涉及的内容:Requests:自动爬取HTML页面,自动网络请求提交robots.txt:网络爬虫...
前言
大二下学期初在中国慕课网站刷过一遍北京理工大学嵩天老师的Python网络爬虫与信息提取,当时看的仓促,没有认真的做笔记整理。今天对于这门网课的知识点做一个归纳整理,供以后爬虫参考。
一、“网络爬虫”课程内容导学
The website is the API
python网络爬虫涉及的内容:
- Requests:自动爬取HTML页面,自动网络请求提交
- robots.txt:网络爬虫排除标准
- Beautiful Soup:解析HTML页面
- Projects:实战项目A/B
- Re:正则表达式详解,提取页面关键信息
- Scrapy*: 网络爬虫原理介绍,专业爬虫框架介绍
二、Requests库入门
1.Requests库的安装
pip install requests
(该命令在mac终端执行)
2.Requests库的安装小测
import requests
r=requests.get('http://www.baidu.com')
print(r.status_code)
r.text
3.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
1.requests.get()
r=requests.get(url, params=None, **kwargs)
- r:返回一个包含服务器资源的response对象
- requests.get(url):构造一个向服务器请求资源的Request对象
- url: 拟获取页面的url链接
- params: url中的额外参数,字典或字节流格式,可选
- **kwargs: 12个控制访问的参数
Response对象的属性
属性 | 说明 |
r.status_code | HTTP请求的返回状态,200:连接成功,404:失败 |
r.text | HTTP响应内容的字符串形式,即,url对应的页面内容 |
r.encoding | 从HTTP header中猜测的相应内容编码方式 |
r.apparent_encoding | 从内容中分析出的相应内容编码方式(备选编码方式) |
r.content | HTTP响应内容的二进制形式 |
先以r.status_code进行检验,404则终止,
200则进一步使用函数r.text r.encoding r.apparent_encoding r.content
接下来运行一下代码
r = requests.get('http://www.baidu.com')
r.status_code
r.text
r.encoding
r.apparent_encoding
r.encoding='utf-8'
r.text
以下对r.encoding与r.apparent_encoding区分
- r.encoding 从HTTP header中猜测的相应内容编码方式
- r.apparent_encoding 从内容中分析出的相应内容编码方式(备选编码方式)
四、爬取网页的通用代码框架
1.理解requests库的异常
2.爬取网页的通用代码框架!!
(注:if __name__ == '__main__'
的意思是:当.py文件被直接运行时,if __name__ == '__main__'
之下的代码块将被运行;当.py文件以模块形式被导入时,if __name__ == '__main__'
之下的代码块不被运行。)
五、HTTP协议及Requests库方法
HTTP URL实例:
http://www.bit.edu.cn
http://220.181.111.188/duty
HTTP URL的理解:
URL是通过HTTP协议存取资源的internet路径,一个URL对应一个数据资源。
上文表格已经阐释,HTTP协议方法与Requests库方法功能性一致。
六、Request库主要方法解析
requests.request(method,url,**kwargs) 等价于requests.method(url,**kwargs)
**kwargs参数汇总
**kwargs:控制访问的参数
files : 字典类型,传输文件
fs={'file':open('data.xls','rb')}
r=requests.request('POST','http://python123.io/ws',files=fs)
timeout:设定呢超时时间,秒为单位
r=requests.request('GET','http://www.baidu.com',timeout=10)
proxies:字典类型,设定访问代理服务器,可以增加登录认证
七、总结
Robots 协议
robots exclusion standard, 网络爬虫排除标准
作用:
网络告知网络爬虫哪些页面可以抓取,哪些不行
形式:
在网站根目录下的robots.txt文件
Requests库实战课件在python文件夹中
更多推荐
所有评论(0)