2011-03-06 70 views
15

我正在使用python的机械化模块导航一个站点,并且无法点击下一页的JavaScript链接。我做了一些阅读,人们建议我需要python-spidermonkey和DOMforms。我设法让他们安装,我不确定实际点击链接的语法。点击python中的JavaScript链接?

我可以在页面上标识代码:

<a href="javascript:__doPostBack('ctl00$MainContent$gvSearchResults','Page$2')">2</a> 

有谁知道怎么一下就可以了?或者如果可能还有另一种工具。

感谢

+0

难道你只是通常点击它?如果python-spidermonkey和DOMForms有什么用处,它就会起作用。 – 2011-03-06 01:14:44

+0

我正在尝试,但它真的很难找到工作的例子。我其实不知道该怎么做。我在示例中找到的大多数命令都不起作用。我已经阅读了许多人建议这些工具处理javascript的能力,但使用这些软件包并不是非常简单。 – Lostsoul 2011-03-06 01:19:54

+0

如果我需要处理JavaScript,我避免使用机械化(或斜纹,我更喜欢),而是使用[Selenium](http://seleniumhq.org)或[Splinter](http://splinter.cobrateam)。信息)(这是我最喜欢的两个)。 – brandizzi 2011-12-03 04:20:48

回答

6

我主要在jython下为这些用例使用HtmlUnit。我还发表了一篇关于这个主题的简单文章:Web Scraping Ajax and Javascript sites

+0

谢谢,我正在研究这个权利。说实话,我在OO编程方面有点新,但仍然想弄清楚java。我正在避免所有的java解决方案,因为如果事情破裂,我不知道我可以排除故障。我对Python感觉更好,但是这个解决方案看起来非常好,似乎我可以编写python脚本并调用java脚本来创建变量来回传递。你的网站很糟糕,似乎有很多htmlunit的文档/样本。 – Lostsoul 2011-03-08 16:33:01

+0

感谢Lostsoul。我认为Python或Ruby(JRuby)等语言与Java框架之间的结合会带来很大的力量。 Java有一些更加开发的框架,但是它们以直接的方式使用很多次。 – 2011-03-08 19:21:53

0

怎么样调用__doPostBack('ctl00$MainContent$gvSearchResults','Page$'+pageid);(JavaScript的方法,通过Python-的SpiderMonkey)

+0

非常感谢您的快速回复n00b32。我对这个蜘蛛侠很陌生,但仍然有点困惑。我到底该怎么做?没有太多的文档或示例脚本,我可以找到spidermonkey。我基本上是在导入mechanize和beautifulsoup的地方,并且有一个修改页面中所有坏HTML的变量(soup1)。我可以在变量中获得上面的链接,但不知道该做什么后,我仍然很困惑。得到一个例子,或者如果你能指导我在哪里学习,这将是一件好事。再次感谢! – Lostsoul 2011-03-06 07:48:36

2

,而不是与Python-SpiderMonkey的尝试webkit's qt python bindings挣扎。

这是full example to execute JavaScript and extract the final HTML

+0

这看起来很有趣。我只是安装它,并会玩弄它。我找到了一个示例脚本,并且没有多少关于使用webkit的文档。 – Lostsoul 2011-03-08 16:30:47

+1

增加了一个例子。不幸的是很难找到很多关于它的例子。大多数人通过C++使用Qt/Webkit。 – hoju 2011-12-03 03:25:10