js 爬虫抓取网页数据(网络蜘蛛虽以与数据的纠葛(图))
优采云 发布时间: 2021-12-28 12:12js 爬虫抓取网页数据(网络蜘蛛虽以与数据的纠葛(图))
2.1.1 爬虫与数据的纠葛
在浩瀚的互联网中,有这样一种“爬虫类生物”穿梭于万维网,吞下携带信息的网页,然后传递给搜索引擎进行转换、吸收,最终为人类快速“孵化”出结构化数据查找并显示。这种“生物”被称为“网蜘蛛”。现实中,蜘蛛的形状实在是太可怕了,以至于大多数人都忽略了它们对人类有益的事实。虽然网络蜘蛛以数据为食,但数据的生产者网站需要爬虫的帮助才能将网页提交给搜索引擎。
网站需要爬虫的帮助,爬虫需要不断的爬取新的数据才能完成任务。但是爬虫只是程序员写的程序,数据抓取的工具。在有心人的操作下,网络蜘蛛会变成“恶意爬虫”,为自己窃取目标网站的数据,同时将其带到网站上。巨大的压力影响了网站的正常运行。
上图中的蜘蛛网类似于互联网的网络结构。蜘蛛网上的蜘蛛就像互联网上的网络爬虫。蜘蛛顺着网页线,从当前节点爬到下一个节点,不断向前,一层一层,最后把网站上的数据吃光。
2.1.2种网络爬虫
根据实现方式的不同,网络爬虫主要分为以下两种:
爬行动物种类
描述
万能网络爬虫
需要有一个初始网址,在爬取过程中,不断获取新的网址进行数据抓取
专注于网络爬虫
专注于数据捕获的特定主题
通用网络爬虫,顾名思义,就是一种以通用为主要目的的网络爬虫。这种爬虫需要一个初始 URL。首先抓取初始URL对应的网页,然后解析网页中的URL,将新的URL加入到抓取队列中,然后进行下一轮的抓取。一般网络爬虫的爬取过程如下图所示:
顾名思义,专注于网络爬虫,专注于数据捕获的特定主题。它需要在一般的网络爬虫的基础上定义主题,并在抓取过程中过滤主题,以保证抓取到特定主题的内容。
除了一般的网络爬虫和聚焦网络爬虫,还有增量网络爬虫和深度网络爬虫。我们在学习网络爬虫的种类时,需要重点了解每个爬虫的爬取过程,然后尝试用代码模拟实现,这样才能彻底的理解。
要进一步了解爬虫的机制,需要掌握爬虫的核心原理。
2.1.3 爬虫核心原理
了解爬虫的核心原理,需要回答这两个问题:爬虫为什么可以抓取数据?爬虫抓取什么格式的数据?
第一个问题:爬虫为什么可以抓取数据?
最常用的互联网工具是浏览器,浏览器和爬虫的数据抓取过程非常相似。打开浏览器,在地址栏中输入网址,然后按回车键,可以在浏览器中看到该网址对应的网页数据。之所以能看到网页的内容,是因为浏览器在本地抓取网页,然后解析网页中的js脚本,对网页的文本数据进行样式渲染。
浏览器通过http协议与网页所在的服务器进行交互,服务器根据浏览器的http请求将请求的网页返回给浏览器。爬虫的数据抓取也是基于同样的原理,通过http协议与http服务器交互。对于 http 服务器,浏览器和爬虫都是 http 客户端。
要了解爬虫的核心原理,首先需要掌握http协议。下一节将从全局角度解释http协议。Python 提供了 urllib 和 requests 模块,通过这些模块,你可以在 Python 程序中发起 http 请求。
第二个问题:爬虫抓取什么格式的数据?
爬虫向网页所在的服务器发起请求后,服务器通常以HTML格式的文本数据进行响应。HTML 是一种用于描述网页的标记语言。内容用尖括号和标签名称标记。每个标签名称代表一个特定的语义。http 服务器的响应不一定是 HTML。很多情况下会返回json格式的文本数据。我们在编写爬虫程序的时候,需要具体问题具体分析。
HTML标签通常成对出现,分为开始标签和结束标签,结束标签中带有/符号。例如,标记页面的标题,标记页面的段落
和
, 标记网页链接的总和。HTML 格式的简单示例:
Python网络爬虫核心原理及实战
在广袤的互联网中,有这样一种"爬虫生物",穿梭于万维网中,将承载信息的网页吞食,
然后交由搜索引擎进行转化,吸收,并最终"孵化"出结构化的数据,供人快速查找,展示。
这种"生物",其名曰"网络蜘蛛"。
下一页
爬取HTML文本后,爬虫需要解析HTML格式的数据,获取需要的内容。例如,要解析出上面 html 示例中 h1 标签的标题:
Python网络爬虫核心原理及实战
解析出p标签中的段落:
在浩瀚的互联网中,有这样一种“爬虫类生物”穿梭于万维网,吞下携带信息的网页,然后传递给搜索引擎进行转换、吸收,最终为人类快速“孵化”出结构化数据查找并显示。这种“生物”被称为“网蜘蛛”
解析出a标签中的url:
/?id=666
Beautifule Soup 是 Python 社区中一个强大的解析库。使用 Beautifule Soup,您可以轻松解析 HTML 中的数据。数据解析完成后,还需要进行存储、预处理、特征提取、数据挖掘、可视化等操作。有兴趣的同学可以进一步学习大数据分析、挖掘等相关知识。
2.1.4个关键知识点(1) Crawler是程序员编写的程序,数据抓取工具
(2)根据实现方式的不同,网络爬虫主要分为通用网络爬虫,重点是网络爬虫
(3)爬虫的数据抓取主要是通过http协议与http服务器交互。对于http服务器来说,无论是浏览器还是爬虫,都是http客户端。
(4) 爬虫向网页所在的服务器发起请求后,服务器以HTML格式的文本数据响应。
2.1.5 课后练习(1) 写一个算法简单模拟一般网络爬虫的爬取过程
(2)写一个简单的html解析工具,解析出1.1.第3节中html实例的title、tag、url。
炸薯条老师录制的全套Python3视频教程B站链接: