网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
- 解决冷启动问题
- 搜索引擎的根基。 —通用爬虫
- 帮助机器学习建立知识图谱
- 制作各种比价软件
web前端的知识
HTML、CSS、Javascript、DOM、DHTML、Ajax、jQuery、json等
正则表达式
能提取正常一般网页中想要的信息,比如:某些特殊的文字,链接信息,知道什么是懒惰,什么是贪婪型的正则;
会使用 XPath 等获取一些 DOM 结构中的节点信息;
知道什么是深度优先,广度优先的抓取算法,以及实践中的使用规则;
能分析简单网站的结构,会使用 urllib 或 requests 库进行简单的数据抓取。
搜索引擎通过特定算法,从互联网上获取网页信息,将其保存到本地,为用户提供检索服务的一种程序。
搜索引擎主要是由通用爬虫组成的。
(1)通用爬虫:将互联网上的网页信息整体爬取下来的爬虫程序。
(2)搜索引擎的工作步骤:
(3)为什么搜索引擎可以爬取所有的网页?—搜索引擎是如何爬取所有网页的
一个网页就是一个 url ,这个问题其实在问,url的获取来源
url的获取来源:
聚焦爬虫:在实施网页抓取的过程中,会对内容进行筛选,尽量保证只抓取与需求相关的信息的爬虫程序。
定义:网络爬虫排除标准
作用:告诉搜索引擎哪些可以爬,哪些不能爬。
http 协议:是一种发布和接收 HTML 页面的方法,是规范。
http:超文本传输协议
https:http的安全版,在 http 下加入 SSL 层。
对称加密----密钥
非对称----私钥 + 公钥
数字签证—
http:80
https:443
Upgrade-Insecure-Requests : 1 ; 可以将 http 升级成 https 请求。
(1)应用层协议
(2)无连接
http 每次发送请求和响应的过程都是独立的。
在 http 1.0 以后,有请求头:
connection:keep-alive
客户端和服务器建立长连接
(3)无状态
http 协议不记录状态
cookie 和 session 做到请求状态的记录。
cookie 是在客户端保存,session 是在服务器保存。
(1)主要作用:用来定位互联网上的任意资源的位置。
(2)为什么 url 可以定位任意资源?
组成:https://www.baidu.com/index.html?username=123&password=abc#top
scheme :协议----https
netloc:网络地址 ip:port ----www.baidu.com
通过 ip 定位电脑,通过 port 定位应用
192.168.92.10:80
path:资源路径。— index.html
query:请求参数。----?后面的内容 username=123&password=abc
fragment:锚点。 ---- top
原因:url 包含 netloc 可以定位电脑,path 定位资源,这样就可已找到任意资源
(3)特殊符号
?:后面就是请求参数
&:连接请求参数
#:锚点 — 如果 url 中有锚点,在爬虫程序中尽量去除
(1)组成:请求行、请求头、空行、请求数据(实体)
请求头:请求方法;host 地址,http 协议版本。
(2)请求头
user-agent:客户端标识。
accept:允许传入的文件类型。
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
referer:标识产生请求的网页来自于哪个网页
cookie:cookie 信息。 现在很多网站,必须封装cookie才给数据。
post请求重要的请求头:
content-type:请求的数据类型
content-length:请求数据的长度
ajax请求必须封装的头:
x-requested-with:XmlHttpRequest
(1)组成:状态行、响应头、空行、响应正文
(2)响应头:
Content-Type:text/html;charset=UTF-8
(3)状态码(面试常考):
常见状态码: