【问题标题】:Choosing a Python webscraping framework for handling pure Javascript based sites选择一个 Python 网页抓取框架来处理纯 Javascript 的网站
【发布时间】:2011-09-13 09:10:57
【问题描述】:

我是一名专门从事网络抓取的 Python 程序员,我不得不问这个问题,因为我没有发现任何相关内容。

我想知道有哪些流行的、有据可查的框架可供 Python 用于抓取纯 Javascript 的网站?目前我知道 Mechanize 和 Beautiful Soup,但它们不与 Javascript 交互,所以我正在寻找不同的东西。我更喜欢像机械化一样优雅和简单的东西。

我做了一些研究,到目前为止,我听说过 Selenium、Selenium 2 和 Windmill。

现在我正在尝试从这三个中选择一个,我不知道还有其他的。

那么谁能指出这些框架的特点以及它们的不同之处?我听说 Selenium 使用一个单独的服务器来完成它的所有任务,而且它似乎功能丰富。 Selenium 和 Selenium2 之间的核心区别是什么?如果我错了,请赐教,如果您知道任何其他框架,请提及它的功能和其他细节。

谢谢。

【问题讨论】:

  • 快速评论:你能给我们一个你想抓取的网站的例子吗?如果我正在编写一个纯 javascript 网站,我会确保任何获取数据以填充它的行为都是作为单独的 Ajax 调用编写的,而“抓取”的最佳方法是找到该 ajax 调用并以这种方式获取数据,而不是执行 javascript 然后解析结果结构。听起来很乱。目标站点是否提供任何类型的 API,因此无需渲染/抓取过程?
  • 我不知道与从下面的网站抓取相关的法律问题,或者他们是否提供任何 api,但这是作为示例提供的:baesystems.taleo.net/careersection/2/jobsearch.ftl?lang=en
  • 哎呀。无论网页设计师认为这是做事的好方法,都需要拍摄。 ..
  • 我知道大声笑,潜在雇主问我的第一个问题是你能刮掉这个网站吗?显然我没有,这就是为什么我要尝试学习一个支持自动处理 javascript 的新框架。
  • 你得到答案了吗?我也在研究如何抓取 javascript 网站!

标签: python selenium web-scraping selenium-webdriver windmill


【解决方案1】:

在使用 Selenium 等专为前端测试而非抓取而设计的工具之前,您应该先了解一下网站上的数据来自何处。了解发出了哪些 XHR 请求、它们采用了哪些参数以及结果是什么。

例如,您在评论中提到的站点使用 JavaScript 中的大量参数执行 POST 请求并显示结果。您可能只需要使用此 POST 请求的结果来获取您的数据。

【讨论】:

  • 您好,感谢您指出另一种观点。目前,我对处理 ajax 调用和从动态站点抓取数据没有太多想法。我提到的站点显示了由 Javascript 动态生成的内容,它们不是 html 形式的。那么,您能否向我指出有关学习如何做到这一点的资源、教程等?我还需要 Javascript、Xml 和 Ajax 知识吗?谢谢。
猜你喜欢
  • 2018-10-16
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多