js 爬虫抓取网页数据(简单来说,爬虫就是获取网页并提取和保存信息的自动化程序)

优采云 发布时间: 2021-12-18 20:14

  js 爬虫抓取网页数据(简单来说,爬虫就是获取网页并提取和保存信息的自动化程序)

  履带概览

  简单地说,爬虫是一种自动程序,它可以抓取网页并提取和保存信息。

  爬虫可以概括为4个步骤:

  

  1.获取网页

  爬虫首先要做的就是获取网页,即获取网页的源代码。源代码收录了网页的部分有用信息,所以只要得到源代码,就可以从中提取出想要的信息。

  根据请求和响应的概念,向网站的服务器发送一个请求,返回的响应体就是网页的源代码。因此,最关键的部分是构造一个请求并发送给服务器,然后接收到响应并发送解析​​出来。

  

  Python是一个非常有用的爬虫工具。它提供了很多库来帮助我们实现这个操作,比如urllib、request等,我们可以使用这些库来帮助我们实现HTTP请求操作。请求和响应都可以用类库提供的数据结构来表示。得到响应后,只需要解析数据结构的Body部分。

  总结:

  通过python爬虫相关库,实现HTTP请求操作,获取服务器响应,获取网页源码

  2.提取信息

  获取到网页的源代码后,下一步就是分析网页的源代码,从中提取出我们想要的数据。一般通用的方法是使用正则表达式提取。缺点是比较复杂,容易出错。

  另外,由于网页结构的某些规则,python也有一些基于网页节点属性、CSS选择器或XPath提取网页信息的库,例如Beautiful Soup、pyquery、lxml等。使用这些库,我们可以高效快速的提取网页信息,如节点属性、文本值等。

  提取信息是爬虫的一个非常重要的部分。它可以从杂乱的数据中获取有效的信息,方便我们后续的数据处理和分析。

  总结:

  正则表达式是一种通用的抽取方式,也可以使用一些从网页节点属性、CSS选择器等中抽取信息的库,比如Beautiful Soup、pyquery、lxml等。

  3.保存数据

  提取信息后,我们一般会将提取的数据保存在某处以备后续使用。有很多方法可以保存它。简单处理可以保存为TXT或JSON文本。它也可以保存到数据库中,例如 MySQL 和 MongoDB。或者保存到远程服务器。

  4.自动化程序

  简单来说,爬虫可以在爬取过程中进行各种异常处理、错误重试等操作,持续高效地完成获取网页、提取信息、保存数据的工作。

  爬虫可以抓取什么样的数据

  [1] 最常见的爬取是HTML源代码。

  [2] JSON字符串,有些网页返回的不是HTML代码,而是JSON字符串,尤其是API接口大多采用这种形式,这种格式的数据便于传输和分析,也可以抓取,数据提取更方便。

  [3] 二进制数据,如图片、视频、音频等,使用爬虫我们可以抓取这些二进制数据并保存为相应的文件名。

  [4] 各种扩展文件,如CSS、JavaScript 和配置文件。

  JavaScript 渲染页面

  有时,当我们使用 urlib 或 request 抓取网页时,我们得到的源代码实际上与我们在浏览器中看到的不同。

  这是一个很常见的问题。由于越来越多的网页是使用Ajax和前端模块化工具构建的,整个网页可能会被JavaScript渲染,这意味着原来的HTML代码只是一个空壳。

  例如,下面的 HTML 代码

  

This is a Demo

  body节点中只有一个id为container的节点,但是在body节点之后引入了app.js,负责整个网站的渲染。

  过程是在浏览器中打开页面时,首先加载HTML内容,然后浏览器会发现里面引入了一个app.js文件,就会请求这个文件。获取文件后,它会执行其中的JavaScript。代码,JavaScript 会改变 HTML 中的节点,向其添加内容,最后显示完整的页面。

  当我们请求一个带有 urlib 或 request 等库的页面时,我们得到的只是这个 HTML 代码,它不会帮助我们加载这个 JavaScript 文件,所以我们在浏览器中看不到内容。

  对于这种情况,我们可以分析其后端的Ajax接口,或者使用Selenium、Splash等库来实现模拟JavaScript渲染,后面会介绍。

  本文总结参考《Python3 Web爬虫开发实战》

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线