为什么要学爬虫
1)学习爬虫,可以私人订制一个搜索引擎。
2)大数据时代,要进行数据分析,首先要有数据源。
3)对于很多SEO从业者来说,从而可以更好地进行搜索引擎优化。
4)从就业的角度来说,通过爬虫的学习,属于计算机技术开发人员技能树的扩展。
什么是网络爬虫?
网络爬虫(又被称为网页蜘蛛,网络机器人)爬虫就是模拟客户端发送网络请求,接收请求对应的响应,一种按照一定的规则,自动地抓取互联网信息的程序。
只要是客户端(主要指浏览器)能做的事情,原则上,爬虫都能够做。换言之,只要人类能够正常访问的网页,爬虫在具备同等资源的情况下就一定可以抓取到。
爬虫(数据采集):灰色地带。快速抓取数据,不是非法获取数据。
- 名词解释:本质是程序、是代码;
- 模拟客户端(浏览器):client,发送网络请求,app,代码,测试工具postman
- 举例:张三到肯德基买汉堡!张三淘宝购物!
- 张三是客户,也是客户端
- 肯德基是服务商,也是服务端
- 张三要到柜台,告诉肯德基服务端,要吃什么?付钱、等待收货。
- 要–告诉:叫做请求;
- 具体商品:叫做响应,比如汉堡,
- 张三淘宝购物的过程,添加购物车、付款过程也叫做请求,收到货物叫做响应。
- 张三是客户端
- 淘宝是服务端
- 举例:张三到肯德基买汉堡!张三淘宝购物!
- 发送网络请求:
- 张三(客户端)向淘宝(服务端)发送网络请求
- 接收请求对应的响应:
- 服务器返回的内容:
- 正常情况下:能买到汉堡;
- 异常情况下:卖完了,没买到,网络不通等异常情况;
- 服务器返回的内容:
- 按照一定规则,自动从网页中提取信息的程序
- 规则:正则表达式、json、lxml等方式提取
- 不同网站的网页,中的数据存储形式多样,
- 每个网站或网页都有数据提取的方式和方法
- 自动:
- 网络中数据非常多,自动提取比手动提取效率高;
- 网页信息:
- 使用HTML语言展示数据,包含字符串、图片、链接等
- 规则:正则表达式、json、lxml等方式提取
- 模拟客户端(浏览器):client,发送网络请求,app,代码,测试工具postman
- 补充:
- 浏览器能看到的内容,爬虫在具备同等资源的情况下,才能看到;
- 客户端(爬虫的实现人员)和服务器(后台管理人员)
- 反爬手段不多的网站
- 浏览器看不到,爬虫也爬不到;比如收费小说等,需要具备权限才能看到的数据;
- 浏览器能看到的内容,爬虫在具备同等资源的情况下,才能看到;
爬虫用途
数据采集、抢票、抢购、投票刷票、短信轰炸、网络攻击DDos、web漏洞扫描器等等等等…
爬虫分类
- 通用爬虫:
- 主要指搜索引擎;比如百度、谷歌、必应等
- 主要作用从网络中,尽可能多的爬取数据,不是针对某一网站、某一类型的数据
- 聚焦爬虫:
-
针对特定网站,爬取指定数据的爬虫
-
累积式爬虫:从开始到结束,不断爬取,过程中会进行去重操作
-
增量式爬虫 : 已 下 载 网 页 采 取 增 量式更新和只爬取新产生,或者已经发生变化网页的爬虫
-
Deep web爬虫 : 不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的 Web 页面
-
爬虫工作原理
- 静态网页:就是指html里面的固定内容;
# 任何人通过这个链接地址,访问的内容都是相同的,固定的
http://www.baidu.com/?wd=北京
- 动态网页:前端(浏览器中的js),后端会根据前端参数的不同,返回不同的结果
area = input('请输入您要查询的城市信息:')
# area如果是北京,返回北京的内容,如果是上海,返回上海的内容,返回的结果不同
http://www.baidu.com/?wd=area