c 抓取网页数据(综合看下BeautifulSoup库的优缺点有哪些?优点是什么?)

优采云 发布时间: 2021-11-04 23:10

  c 抓取网页数据(综合看下BeautifulSoup库的优缺点有哪些?优点是什么?)

  缺点:

  只检索页面的静态内容

  不能用于解析 HTML

  无法处理纯 JavaScript 网站

  2.lxml

  

  lxml 是一个高性能、快速、高质量和高效的 HTML 和 XML 解析 Python 库。

  它结合了 ElementTree 的速度和功能以及 Python 的简单性。当我们打算爬取大数据集的时候,它可以起到很好的作用。

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

  lxml Python 库的优缺点是什么?

  优势:

  比大多数解析器更快

  光

  使用元素树

  蟒蛇式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 最初是一个 Python 库,用于自动测试 Web 应用程序。它是一个用于渲染网页的网络驱动程序。因此,Selenium 可以在其他库无法运行 JavaScript 的情况下发挥作用:单击页面、填写表单、滚动页面并执行更多操作。

  这种在网页中运行 JavaScript 的能力允许 Selenium 抓取动态填充的网页。但这里有一个“缺陷”。它为每个页面加载并运行 JavaScript,这会使其变慢并且不适合大型项目。

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

  优势:

  初学者友好

  自动网页抓取

  可以抓取动态填充的网页

  自动浏览器

  可以对网页进行任何操作,类似于一个人

  缺点:

  非常慢

  设置困难

  高 CPU 和内存使用率

  不适合大型项目

  5. Scrapy

  现在是时候介绍一下 Python 网页抓取库的 BOSS 了——Scrapy!

  

  Scrapy 不仅仅是一个库。它是由 Scrapinghub、Pablo Hoffman 和 Shane Evans 的联合创始人创建的整个网络抓取框架。它是一个功能齐全的网页抓取解决方案,可以完成所有繁重的工作。

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

  Scrapy 最大的优点是它是异步的,这意味着可以同时进行多个 HTTP 请求,这样可以为我们节省大量时间并提高效率(这不是我们在争取的吗?)。

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

  优势:

  异步

  优秀的文档

  各种插件

  创建自定义管道和中间件

  CPU 和内存使用率低

  精心设计的架构

  大量可用的在线资源

  缺点:

  更高的学习门槛

  工作过于轻松

  不适合初学者

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

  原文链接:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线