单击python中的javascript链接?

Posted

技术标签:

【中文标题】单击python中的javascript链接?【英文标题】:Click on a javascript link within python? 【发布时间】:2011-07-09 15:22:23 【问题描述】:

我正在使用 python 的 mechanize 模块导航一个站点,并且在单击下一页的 javascript 链接时遇到问题。我做了一些阅读,人们建议我需要 python-spidermonkey 和 DOMforms。我设法让它们安装,因为我不确定实际点击链接的语法。

我可以将页面上的代码识别为:

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

有谁知道如何点击它?或者是否有其他工具。

谢谢

【问题讨论】:

你不就正常点一下吗?如果 python-spidermonkey 和 DOMForms 有什么好处,它就会起作用。 我尝试过,但很难找到有效的示例。我实际上不知道该怎么做。我在示例中找到的大多数命令也不起作用。我读过很多人建议使用这些工具来处理 javascript,但使用这些包并不是很直接。 如果我需要处理 JavaScript,我会避免机械化(或斜纹,我更喜欢),而是使用 Selenium 或 Splinter 之类的东西(这是我最喜欢的两者)。 【参考方案1】:

与其在 python-spidermonkey 上苦苦挣扎,不如试试webkit's qt python bindings。

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

【讨论】:

这看起来很有趣。我刚刚安装了它,并会玩它。我找到了一个示例脚本,但没有太多关于使用 webkit 的文档。 添加了一个例子。是的,不幸的是很难找到很多关于它的例子。大多数人通过 C++ 使用 Qt/Webkit。【参考方案2】:

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

【讨论】:

谢谢,我正在调查这个问题。老实说,我对 OO 编程有点陌生,但仍在尝试弄清楚 java。我一直在避免使用全 Java 解决方案,因为如果出现问题,我不知道我能多好地进行故障排除。我用 Python 感觉好多了,但是这个解决方案看起来真的很好,似乎我可以编写 python 脚本并调用 java 脚本来创建变量来来回传递。您的网站摇摇欲坠,似乎有大量的 htmlunit 文档/示例。 感谢 Lostsoul。我认为 Python 或 Ruby (JRuby) 等语言与 Java 框架的结合提供了强大的功能。 Java 有一些更发达的框架,但直接使用它们要复杂很多倍。【参考方案3】:

调用__doPostBack('ctl00$MainContent$gvSearchResults','Page$'+pageid);怎么样(javascript方法,通过python-spidermonkey)

【讨论】:

非常感谢您的快速回复 n00b32。我对这只蜘蛛猴很陌生,仍然有点困惑。我该怎么做呢?对于 spidermonkey,我找不到太多文档或示例脚本。我基本上已经导入了 mechanize 和 beautifulsoup 并且有一个变量 (soup1) 可以修复页面中所有损坏的 html。我可以在变量中获取上面的链接,但不知道之后该怎么做,我仍然很困惑。如果能有一个例子或者你能指导我去哪里学习,那就太好了。再次感谢!

以上是关于单击python中的javascript链接?的主要内容,如果未能解决你的问题,请参考以下文章

单击链接完整脚本后将图形另存为图像

如何在使用javascript单击div中的链接时禁用div中的所有其他链接[重复]

如何单击python中的按钮

如何使用scrapy中的CrawlSpider单击带有javascript onclick的链接?

单击链接时javascript函数不起作用

单击链接时如何使用 Javascript 更改部分 HTML?