如何抓取网页数据(爬虫优化:爬虫最重要的部分做出详细介绍:获取网页爬虫)
优采云 发布时间: 2022-04-10 08:32如何抓取网页数据(爬虫优化:爬虫最重要的部分做出详细介绍:获取网页爬虫)
爬行动物基础:
简单地说,爬虫是一个自动程序,它请求网页并提取数据并保存信息。
人们经常把爬虫比作爬网的蜘蛛,把网络的节点比作网页。爬虫爬取时,相当于访问页面获取其信息。节点之间的连接可以比作网页之间的连接。链接关系,让蜘蛛在经过一个节点后可以继续沿着该节点连接爬到下一个节点,也就是通过一个网页继续获取后续页面,从而可以爬取整个网页的节点蜘蛛,所以 网站@ > 数据可以被捕获。
简单流程介绍:
下面说一下爬虫的具体流程,一般分为四个步骤:
发起请求,通过请求库向目标站点发起请求,我们可以模拟携带浏览器信息、cookie值、关键字查询等信息访问服务器,然后等待服务器响应
解析内容:服务器响应的内容可能是HTML纯文本、json格式数据,也可能是二进制(如图片、视频等),我们可以使用相关的解析库进行解析、保存或进一步处理。
处理信息:一般来说,解析库解析出来的内容比较复杂,晦涩难懂。我们使用格式或切片等技术使内容清晰明了。只有这样,它才能被认为是有用的信息。接下来,我们可以将信息存储在本地、数据库或远程服务器等。
爬虫优化:爬虫优化有很多方面,比如控制爬虫速率、使用高安全代理服务器、使用分布式爬虫、处理异常……
接下来,作者将对爬虫最重要的部分进行详细介绍:
获取网页
爬虫要做的第一个工作就是获取网页,获取网页的地方就是获取网页的源代码。源代码中一定收录了网页的一些有用信息,所以只要得到源代码,我们就可以从中提取出我们想要的东西。信息。
前面我们谈到了请求和响应的概念。我们向网站@>的服务器发送一个Request,返回的Response的body就是网页的源代码。
所以最关键的部分就是构造一个Request并发送给服务器,然后接收Response并解析出来。在python3中,相关库有:urllib(python自带库)、requests(优雅的第三方库)
好的
我们在第一步得到了网页的源代码后,接下来的工作就是分析网页的源代码,提取出我们想要的数据。最常用的方法是使用正则表达式进行提取,这是一种通用的方法。但是构造正则表达式是复杂且容易出错的。
另外,由于网页的结构有一定的规则,也有一些库是根据网页节点属性、CSS选择器或者XPath来提取网页信息的,比如BeautifulSoup、PyQuery、LXML等,这些库都可以使用高效快速地提取网页。信息,例如节点属性、文本值等。
提取信息是爬虫非常重要的一个环节,它可以让杂乱无章的数据变得清晰有条理,方便我们后期对数据进行处理和分析。
可以捕获什么样的数据:
JavaScript 呈现页面:
有时当我们用 Urllib 或 Requests 抓取网页时,我们得到的源代码实际上与我们在浏览器中看到的不同。
这个问题是一个非常普遍的问题。现在越来越多的网页使用Ajax和前端模块化工具来构建网页。整个网页可能会被 JavaScript 渲染,这意味着原创的 HTML 代码是一个空壳。
因此,当使用 Urllib 或 Requests 等库请求当前页面时,我们得到的只是这段 HTML 代码,它不会帮助我们继续加载 JavaScript 文件,因此我们不会在浏览器中看到我们看到的内容。
这也解释了为什么有时我们得到的源代码与我们在浏览器中看到的不同。
所以使用基本的HTTP请求库得到的结果源代码可能与浏览器中的页面源代码不一样。这种情况下,我们可以在后台分析Ajax接口,通过模拟Ajax请求得到渲染的页面,也可以使用Selenium等库来模拟JavaScript。
本期对爬虫基本原理的描述就到这里啦~
下一篇预告:《使用urllib请求库》,文章讲述如何编写Python爬虫脚本,你期待吗hhh
跟着我,不要迷路!!
欢迎朋友们在评论区指出up主的不足之处。有学习问题也可以找他们交流学习~