您的位置:首页 > 编程语言 > Python开发

Python学习之网络爬虫(一)Requests库与Robots协议

2018-08-21 14:11 204 查看

前言

大二下学期初在中国慕课网站刷过一遍北京理工大学嵩天老师的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文件夹中

 

 

 

 

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: