【问题标题】:How much is the difference between html parsing and web crawling in python [closed]python中的html解析和网络爬虫有多大区别[关闭]
【发布时间】:2011-06-04 12:41:22
【问题描述】:

我需要从我的 django 网站中的网站获取一些数据。 现在我很困惑是否应该使用 python 解析库或网络爬虫库。搜索引擎库是否也属于同一类别

我想知道两者之间的区别是多少,如果我想在我的网站中使用这些功能,我应该使用哪些功能

【问题讨论】:

  • 你有哪些用于 Python 的网络爬取库?
  • 我试过 Scrapy 并不开心

标签: python django web-crawler


【解决方案1】:

如果您可以摆脱后台网络抓取,请使用scrapy。如果需要立即抓取某些东西,请使用html5lib(更强大)或lxml(更快)。如果您打算使用后者,请使用很棒的 requests 库。我会避免使用 BeautifulSoup、mechanize、urllib2、httplib。

【讨论】:

  • BeautifulSoup、mechanize、urllib2 和 httplib 有什么问题?速度,容错?只是为了知识。
  • @Mandx BeautifulSoup 很早就出现了,已经有一段时间没有积极开发了,作者表示对继续开发缺乏兴趣。 html5lib/lxml 今天是更好的选择。机械化的文档很少,我通常看到人们对它比其他任何事情都更困惑。另一方面,Scrapy 有很好的文档记录,并且有一个很好的 API。与替代方案相比,Requests 是一个更 Python、更易于使用、更少麻烦的 http 库。但是,嘿,不要相信我的话,检查一下!
  • 谢谢!我肯定会使用 Requests,difference 使它几乎是强制性的。另外,我想我可以添加PyQuery 来从 HTML/XML 数据中提取信息。使用与 jQuery 相同的选择器语法来选择节点,它根据查询返回 lxml 节点。确实很方便。
【解决方案2】:

HTML 解析将解析页面,您可以收集其中存在的链接。您可以将这些链接添加到队列并访问这些页面。将这些步骤组合成一个循环,您就制作了一个基本的爬虫。

抓取库是执行抓取的即用型解决方案。它们提供了更多功能,例如检测递归链接、循环等。您想要编写的许多功能已经在这些库中完成。

但是,如果您有一些库无法满足的特殊要求,则首选第一个选项。

【讨论】:

    【解决方案3】:

    我以前做过类似的事情。如果我希望立即完成解析以获取某些内容并呈现给用户,那么网络爬虫对我没有用处。对于批处理作业,它们更合适。我发现BeautifulSouplxmlmechanize 非常有用。

    【讨论】:

      猜你喜欢
      • 2012-07-14
      • 1970-01-01
      • 2019-04-17
      • 2018-01-26
      • 2011-07-07
      • 2012-09-12
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      相关资源
      最近更新 更多