【问题标题】:Click on a javascript link within python?单击python中的javascript链接?
【发布时间】: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,我会避免机械化(或斜纹,我更喜欢),而是使用 SeleniumSplinter 之类的东西(这是我最喜欢的两者)。

标签: javascript python screen-scraping mechanize spidermonkey


【解决方案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。我可以在变量中获取上面的链接,但不知道之后该怎么做,我仍然很困惑。如果能有一个例子或者你能指导我去哪里学习,那就太好了。再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-06
  • 1970-01-01
  • 2016-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多