跟随与机械化和python的javascript链接

时间:2013-09-15 07:25:49

标签: javascript python web-scraping mechanize

我正在进行一些网络抓取,项目已经完成,除了我需要点击一个javascript链接,我无法弄清楚如何使用Python和机械化。

在其中一个页面上,会出现一个javascript链接列表,我想依次关注它们,抓取一些数据,然后重复。我知道机械化不能与javascript一起工作,但有没有人知道一个变通方法?这是我用来隔离链接的代码:

for Auth in iterAuths:
     Auth = str(Auth.contents[0]).strip()
     br.find_link(text=Auth)

现在,如果我执行br.follow_link(text=Auth),则会收到错误urllib2.URLError: <urlopen error unknown url type: javascript>

如果我print br.click_link(text=Auth'),则打印为Request for javascript:SendThePage('5660')

我只需要通过javascript链接。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

当我需要做类似的事情时,我查看了我想要遵循的链接。

其中一些是使用javascript生成的静态链接。它们可预测/足够一致,我可以手动生成列表。

其他人只是用参数构建的URL。这些也可以在事先分析并生成python-side并作为请求传递,而不是“点击此链接。”

如果你需要实际执行javascript,你可以运行PyV8 + Mechanize混合。我一直在玩这个,看起来很酷。 PyV8将Python与V8 Javascript引擎连接起来,允许您创建JS环境并执行任意代码。它在两种语言之间来回传播方面做得很好。

我没有任何示例代码,但这三种解决方案中的一种对您有用:)祝您好运!