网络爬虫学习前置知识
2019-08-17 13:58
92 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Antonio_Salieri/article/details/99692286
Scrapy爬虫的使用
步骤
- 创建一个工程和spider模版
- 编写spider
- 编写item pipeline模版
- 进行优化策略的配置
Scrapy爬虫的数据类型: - Request
包含6个属性和方法
.url Request对应的请求URL地址
.method 对应的请求方法,‘GET’ ‘POST’等
.headers 字典类型风格的请求头
.body 请求内容主题,字符串类型
.meta 用户添加的扩展信息,在Scrapy内部模块间传递信息使用
.copy() 复制该请求 - Response
.url Response 对应的URL地址
.status HTTP状态码,默认是200
.headers Response 对应的头部信息
.body Response 对应的内部信息,字符串类型
.flag 一组标记
.request 产生Response 类型对应的Request对象
.copy() 复制该响应 - Item
是从HTML页面提取的信息内容
由Spider生成,由Item Pipeline 处理
类字典类型
提取网络相关信息后,将生成键值对
提取信息的方法
- Beautiful Soup
- Lxml
- re
- XPath Selector
- css selector
使用格式:
request.get(url, params = None, **kwargs)
url:拟获取页面的url链接
Params:utl中的额外参数,字典或者字节流方式
**kwargs:12个控制访问的参数
requests为Response对象,包含爬虫返回的全部内容
Response 对象的属性
- r.status_code
HTTP请求的返回状态,200表示链接成功,404表示失败 - r.text
HTTP 响应内容的字符串形式,即,url对应的页面内容 - r.encoding
从HTTP headers中猜测的响应内容编码方式
如果header中不存在charset,则认为编码为ISO-8859-1,但这种编码不能解析中文 - r.apparent_encoding
从网页内容中分析出响应方式编码方式 - r.content
HTTP响应内容的二进制形式
理解Requests库的异常
- requests.ConnectionError
网络链接错误异常,如DNS查询失败、拒绝链接等 - request.HTTPError
HTTP错误处理
r.raise_for_status() 判断返回的状态类型是不是200 - requests.URLRequired
URL缺失异常 - requests.TooManyRedirects
超过最大重定向次数,产生重定向异常 - requests.ConnectTimeout
连接远程服务器超时异常 - requests.Timeout
请求URL超时,产生超时异常
Requests 库的7个主要方法
- requests.requests()
构造一个请求,支撑以下各方法的基础方法 - 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
相关文章推荐
- 学习笔记---高等数学前置知识---一元二次方程、一元二次函数、指数、对数
- 物理渲染学习笔记(一) —— 前置知识
- 学习笔记---高等数学前置知识---三角函数
- 学习笔记---高等数学前置知识---约分、通分
- 学习视频编码、解码知识需要哪些前置知识?
- C++学习2--坦克大战编写-前置知识
- 第三讲:C#前置知识-【天轰穿.Net4趣味编程系列视频教程-vs2010轻松学习C#】
- 学习笔记---高等数学前置知识---数列、排列组合、解不等式
- 传智播客servlet学习,Servlet的概念和前置知识
- 学习笔记---高等数学前置知识---乘法公式与因式分解
- 机器学习 深度学习用到的数学基础知识 标量、向量、矩阵和张量
- ASP.NET预备知识学习笔记
- php基础知识学习随笔
- 【转】python学习笔记-第1章节 基础知识
- 《More Effective C++》学习心得(五) 前置和后置自增运算符
- 基本知识学习:时钟周期 机器周期 总线周期 指令周期
- MySQL学习-Day01 数据库基础知识
- 开始写博客了,向知识管理学习
- 栋栋晓09:Javascript学习总结:基础知识1(语法、关键字和保留字、变量、数据类型、操作符)