python抓取动态网页(综合看下BeautifulSoup库的优缺点有哪些?优点是什么?)

优采云 发布时间: 2022-02-03 04:14

  python抓取动态网页(综合看下BeautifulSoup库的优缺点有哪些?优点是什么?)

  缺点:

  仅检索页面的静态内容

  不能用于解析 HTML

  无法处理用纯 JavaScript 制作的 网站

  2.lxml

  

  lxml 是一个高性能、快速、高生产力的 HTML 和 XML 解析 Python 库。

  它结合了 ElementTree 的速度和功能以及 Python 的简单性。当我们打算抓取大型数据集时,它工作得很好。

  在网页抓取中,lxml 经常与 Requests 结合使用,它还允许使用 XPath 和 CSS 选择器从 HTML 中提取数据。

  lxml Python库的优缺点是什么?

  优势:

  比大多数解析器更快

  轻的

  使用元素树

  Pythonic API

  缺点:

  不适用于设计不佳的 HTML

  官方文档不太适合初学者

  3.美汤

  

  BeautifulSoup 可能是用于网络抓取的最广泛使用的 Python 库。它创建用于解析 HTML 和 XML 文档的解析树。还自动将传入文档转换为 Unicode,将传出文档自动转换为 UTF-8。

  将“BeautifulSoup”与“Requests”相结合在业内非常普遍。

  BeautifulSoup 如此受欢迎的主要原因之一是它易于使用且非常适合初学者。同时,Beautiful Soup 也可以与 lxml 等其他解析器结合使用。

  但相应地,这种易用性也带来了很大的运行成本——它比lxml慢。即使使用 lxml 作为解析器,它也比纯 lxml 慢。

  下面我们来全面了解一下 BeautifulSoup 库的优缺点。

  优势:

  需要几行代码

  质量文件

  易于初学者学习

  强大的

  自动编码检测

  缺点:

  比 lxml 慢

  4. 硒

  到目前为止,我们讨论的所有 Python 库都有一个限制:您不能轻易地从动态填充的 网站 中抓取数据。

  有时发生这种情况的原因是页面上的数据是通过 JavaScript 加载的。简短的总结是,如果页面不是静态的,前面提到的 Python 库很难从页面中抓取数据。

  在这种情况下,使用 Selenium 更合适。

  

  Selenium 最初是一个用于自动测试 Web 应用程序的 Python 库,一个用于呈现网页的 Web 驱动程序,这就是为什么 Selenium 可以在其他库无法运行 JavaScript 的地方工作:单击页面、填写表单、滚动页面等等.

  这种在网页中运行 JavaScript 的能力使 Selenium 能够抓取动态填充的网页。但是这里有一个“缺陷”,它为每个页面加载和运行 JavaScript,使其速度较慢,不适合大型项目。

  如果你不在乎时间和速度,那么 Selenium 绝对是一个不错的选择。

  优势:

  初学者友好

  自动网页抓取

  可以抓取动态填充的网页

  自动网页浏览器

  可以在网页上执行任何操作,类似于人

  缺点:

  非常慢

  设置困难

  高 CPU 和内存使用率

  不适合大型项目

  5. 爬虫

  又到了介绍Python网页抓取库的BOSS——Scrapy!

  

  Scrapy 不仅仅是一个库,它是由 Scrapinghub 联合创始人 Pablo Hoffman 和 Shane Evans 创建的一个完整的 Web 抓取框架,这是一个可以完成所有繁重工作的成熟的 Web 抓取解决方案。

  Scrapy 提供的爬虫机器人可以抓取多个 网站 并提取数据。使用 Scrapy,您可以创建自己的蜘蛛机器人,将其托管在 Scrapy Hub 上,或作为 API。在几分钟内创建功能齐全的蜘蛛网,当然还可以使用 Scrapy 创建管道。

  Scrapy 最好的地方在于它是异步的,这意味着可以同时发出多个 HTTP 请求,为我们节省了大量时间并提高了效率(这不就是我们为之奋斗的吗?)。

  我们还可以向 Scrapy 添加插件以增强其功能。虽然 Scrapy 不能像 selenium 那样处理 JavaScript,但它可以与一个名为 Splash(一种轻量级 Web 浏览器)的库配对。借助 Splash,Scrapy 可以从动态 网站 中提取数据。

  优势:

  异步

  优秀的文档

  各种插件

  创建自定义管道和中间件

  CPU 和内存使用率低

  精心设计的架构

  大量可用的在线资源

  缺点:

  更高的学习门槛

  工作过于轻松

  不适合初学者

  这些是我个人认为非常有用的 Python 库。如果还有其他你用得好的库,欢迎留言~

  原文链接:

  分类:

  技术要点:

  相关文章:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线