python爬虫基础
1.爬虫定义
爬虫(spider):是用脚本代替浏览器请求服务器获取服务器资源的程序。
2.爬虫的作用
(1)数据的收集(小说,图片)
(2)数据对比(比价网站,数据分析)
(3)模拟操作(功能、压力测试、接口操作)
3.爬虫的流程
3.1 需求
分析业务需求、分析出你需要的数据、数据量、周期
3.1.1 需求拆解
拆分需求点
比如:Python最常见的拆分方法
(1)确定爬取资源的地址 小说网站
(2)构建爬虫请求
(3)发送爬虫请求
(4)接收返回内容 html
(5)对内容进行过滤 html当中匹配小说正文
(6)批量/周期爬取
3.2 建模
根据需求,创建数据库,用数据库表、表字段、表关联来描述业务之间的联系
3.3 分析
3.3.1 分析爬取的路径
3.3.1.1 url统一资源定位符
url:统一资源定位符,资源在服务器上的位置
3.3.1.2 header请求的描述
(1)user-agent:请求的身份(浏览器的版本和信息)
(2)referer:请求的来源
(3)cookie:身份校验
3.3.1.3 Data请求携带的数据
(1)form:表单数据,注册,登录,评论,
(2)file:文件上传下载
(3)proxy:代理服务器
3.3.1.4 response响应部分
(1)常见响应码
200 请求成功
304 页面跳转
404 请求不成功
403 没有权限
500 服务器错误
(2)响应内容的处理
Text/html:可以用文件操作查看
Application/json:可以用json模块解封装
Image/jpg:下载保存
(3)响应数据的处理
①过滤:Re、Xpath、Beautifulsoup
②数据:排序、筛选、计数、截取
③数据的保存:保存到文件、数据库、邮箱
3.3.2 分析html结构
3.3.2.1 Iframe标签
3.3.2.2 From表单请求
Method 提交方式,默认get
Action 提交路径,默认当前值
3.3.3 分析数据传输
js加密
ajax渲染
4.爬虫的基本工具
4.1 浏览器自带的f12
常用的3个面板
4.1.1 Elements(元素)
返回HTML的源码,但是如果有后端渲染,或者前端js渲染的话,返回的是渲染之后的,这个也是js反爬成功的一点
4.1.2 Console(调试面板)
负责代码的调试,网页前端注入,从console开始,我们可以在console当中写js代码
4.1.3 Network(网络)
记录了访问当前url所有的http包,所谓的抓包分析,就在这里,这里每一条代表一个请求包
5.简单爬虫案例
5.1 环境
Win7
Python3.5.0
模块:urllib
5.2代码
5.3结果
5.4浏览器打开链接