~
人生就是这样起起落落落落落落
~
爬虫的概念
- 爬虫是模拟浏览器发送请求,获取响应
爬虫的流程
- url ——> 发送请求,获取响应 ——> 提取数据 ——> 保存
- 发送请求,获取响应 ——> 提取url
url的形式
形式 scheme://host[:port#]/path/…/[?query-string][#anchoe]
scheme:协议(例如:http,https,ftp)
host:服务器的IP地址或者域名
port:服务器的端口(如果是走协议的默认端口,80 or 443 )
path:访问资源的路径
query-string:参数,发送给http服务器的数据
anchor:锚(跳转到网页的指定锚点位置)
例如
http://localhost:4000/file/part01/1.2.html
http://item.jd.com/11936.html#product-detail
Cookie:保存用户的一些个人信息(保存在浏览器上,不安全,存储量小)
Session:存储在对方服务器上,存储量大,无上限
HTTP常见请求头
- Host(主机和端口号)
- Connection(链接类型)
- Upgrade-Insecure-Requests(升级为HTTPS请求)
- User-Agent(浏览器名称)
- Accept(传输文件类型)
- Referer(页面跳转)
- Accept-Encoding(文件编解码格式)
- Cookie(Cookie)
- x-requested-with:xmlHttpRequest(是Ajax异步请求)
常见的请求方法
- GET
- POST
两者的区别
响应状态码(Status code)
- 200:成功
- 302:临时转移至新的url
- 307:临时转移至新的url
- 404:not found
- 500:服务器内部错误
爬虫的分类
- 通用类爬虫:通常指搜索引擎的爬虫
- [ 常用 ] 聚焦爬虫:针对特定网站的爬虫
爬虫的定义
网络爬虫(又被成为网页蜘蛛,网络机器人) 就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。
只要是浏览器能做的事情,原则上,爬虫都能够做
通用搜索引擎的局限性
- 通用搜索引擎所返回的网页里90%的内容无用
- 图片、音频、视频多媒体内容通用搜索引擎无能为力
- 不同用户搜索的目的不全相同,但是返回内容相同
ROBOTS协议
Robots协议:网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。
例如: www.taobao.com/robots.txt
浏览器发送HTTP请求的过程
浏览器渲染出来的页面和爬虫请求的页面不一样
pagerank算法作为搜索引擎中的一种算法
爬虫要根据当前url地址对应的响应为准,当前url地址的elements的内容和url的响应不一样
页面上的数据在哪里
- 当前url地址对应的响应中
- 其他的url地址对应的响应中
比如ajax请求中 - js生成的
部分数据在响应中
全部通过js生成