【问题标题】:Screen Scraping | Web Crawling [closed]屏幕抓取 |网络爬行[关闭]
【发布时间】:2010-12-15 21:07:50
【问题描述】:

我只是对这个话题有几个问题。

谁能解释一下使用以下语言编写爬虫的优缺点:

Java/Groovy

Perl

PhP

Python

我也想知道在抓取时会遇到什么样的问题,也许我应该如何处理它。例如,我遇到了片段身份,但还没有找到处理它的方法。 (我正在使用 htmlunit)

只是为那些对该主题有所了解的人寻找一些指示。

【问题讨论】:

    标签: web-scraping web-crawler screen-scraping extraction


    【解决方案1】:

    优点/缺点更多地与可用的框架相关,而不是编程语言本身。

    1. 如果您需要废弃 javascript/ajax 网站,htmlunit 是最好的选择之一,但如果您想直接使用它,则需要在 JVM 上运行的语言(java、jython、clojure 等)。另一种选择(用于 javascript/ajax)是编写 Google Chrome 插件(比 Firefox 更容易)或在您的应用程序中嵌入 Web 浏览器。第三种选择是使用自动化工具,例如:http://openqa.org/(例如:Selenium、Watir)。
    2. 如果您不需要 javascript/ajax 支持,根据我的经验,lxml 是 CPython 下最好的抓取库,主要处理格式错误的 html。其他 html 解析器并非在任何情况下都能正常工作。
    3. 除了 (1) 和 (2) 之外,另一个重要的问题是您是否有并行爬取框架(如果您需要速度)。 (1)、(2)、(3) 一起很难找到。

    【讨论】:

    • 感谢您的详细解答。你已经解决了我漂浮的很多问题。你处理过硒吗?我一直在考虑检查它,但还没有迈出这一步。我想在上船之前我会做一些研究。
    • 不,我没有用过 Selenium,我用过 Watir。在这种情况下,请查看过去关于优点/缺点的问题:stackoverflow.com/questions/606550/watir-vs-selenium-vs-sahi 我只需要补充一点,Watir 对我来说似乎很慢。
    • 谢谢您的意见,很有帮助
    【解决方案2】:

    我建议从 Python + lxml 开始。 Mechanize 有时也很有帮助。

    依赖 JavaScript 或 cookie 的网站更难抓取,但大多数网站都很简单。

    请确保在您的请求之间留出几秒钟以避免被阻止。

    【讨论】:

    • 谢谢,我考虑过仅仅出于抓取目的而研究 Python。我将不得不看看你的建议。还要感谢有关在计时器上运行请求的提示。
    【解决方案3】:

    考虑查看TestPlan。它有自己的高级语言,但您也可以用 Java 编写模块。它支持 Selenium 后端以及 HTMLUnit。

    如果您可以针对您的片段提出具体问题(问题),那么我也可以回答。

    【讨论】:

    • 我想我会接受你的建议(因为我最熟悉 Java/Groovy)。我也在考虑研究 Selenium;我听说过很多关于它的事情。至于我的具体问题:stackoverflow.com/questions/4320179/…我在对答案的评论中指出了这个问题。我还没有解决那个具体的问题。我不知道如何使用 HTMLUnit 处理片段标识符
    • 只是想知道您是否有时间研究我的问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多