屏幕刮痧|网络爬行

时间:2010-12-15 21:07:51

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

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

有人可以解释使用以下语言编写刮刀的优点和缺点:

的Java / Groovy的

的Perl

比索

的Python

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

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

3 个答案:

答案 0 :(得分:1)

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

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

请务必在请求之间留出几秒钟以避免被阻止。

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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

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