01 爬虫的基本概念
爬虫 网络爬虫(又被称为网页蜘蛛, 网络机器人)就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序. 原则上,只要是浏览器能做的事情,爬虫都能做.
爬虫基本概念
爬虫能做什么
- 搜索引擎
- 购票 抢票
- 网络投票
- 短信轰炸
爬虫的数据来源:
- 去第三方的公司购买数据(比如企查查)
- 去免费的数据网站下载数据(比如国家统计局)
- 通过爬虫爬取数据
- 人工收集数据(比如问卷调查)
爬虫的分类:
- 分为通用爬虫(搜索引擎式爬虫)
- 聚焦爬虫(针对特定网站,例如12306抢票)
- 增量式网络爬虫(Incremental Web Crawler)
- 深层网络爬虫
爬虫获取的数据的用途:
- 进行在网页或者是app上进行展示
- 进行数据分析或者是机器学习相关的项目
爬虫的流程:
-
搜索引擎流程
- 抓取网页
- 数据存储
- 预处理
- 提供检索服务 网站排名
- 聚焦爬虫
- 向起始url发送请求,并获取响应
- 对响应进行提取
- 如果提取url,则继续发送请求获取响应
- 如果提取数据,则将数据进行保存入库
通用搜索引擎的局限性
- 通用搜索引擎返回的网页里面90%的内容无用
- 图片 音频 视频多媒体的内容通用搜索引擎无能为力
- 不同用户搜索的内容不同,但是返回的内容相同
HTTP/HTTPS
HTTP :超文本传输协议, 默认端口80
HTTPS: HTTP+SSL(安全套接字层), 默认端口号:443
HTTPS比HTTP更安全,但是性能更低.
浏览器发送HTTP请求的过程
页面上渲染出来的的数据在哪里
- 当前url地址对应的响应汇总
- 其他的url地址对应的响应中, 比如ajax请求中
- js生成的
- 部分数据在响应汇总
- 全部通过js生成
url的形式
形式 scheme://host[:port#]/path/.../[?query-string][#anchor]
- scheme:协议(例如:http,https,ftp)
- host:服务器的IP地址或者域名
- port:服务器的端口(如果是走协议默认端口,80 or 443)
- path:访问资源的路径
- query-string:参数,发送给http服务器的数据
- anchor:锚(跳转到网页指定锚点位置,但加不加锚点响应内容都是一样的)
HTTP常见请求头
- HOST(主机和端口号)
- Connection(链接类型)
- Upgarde-Insecure-Requests(升级为HTTPS请求)
- User-Agent(浏览器名称) 用户代理 浏览器的身份标识
- Accept(传输文件类型)
- Referer(页面跳转处)
- Accept-Encoding(文件编解码格式)
- Cookie (cookie)
- x-requested-with: XML HttpRequest(是AJax异步请求)
Robots协议
网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,但它仅仅是互联网中的一般约定, 用户也可以不遵守该协议继续爬取.
爬虫需要掌握字符串转换
爬虫使用python3的字符串类型处理 学习参考Python3 字符串
要掌握str和bytes类型的数据转化.