【问题标题】:Javascript and Spynner (Python)Javascript 和 Spynner (Python)
【发布时间】:2012-09-18 17:07:51
【问题描述】:

我正在尝试抓取一个网站,我需要使用 Javascript。我正在使用 Python 2.7 和 Spynner。这是脚本:

   <a href="javascript://" onclick="TranslationPopUpTestimonialQuery('Language_ALL', '',       '5', '10', 'date-of-visit')">6</a>

这是我的 Python 代码:

   import spynner
   browser = spynner.Browser()
   browser.load("http://www.zoover.it/italia/lazio/roma/galileo/hotel")
   page1 = browser._get_html()
   browser.runjs("TranslationPopUpTestimonialQuery('Language_ALL', '', '8', '10', 'date-of-visit')")
   browser.wait_load()
   page2 = browser._get_html()

有些东西不起作用,因为 get_html 没有给我想要的 html 页面...

这是第一个网址:http://www.zoover.it/italia/lazio/roma/galileo/hotel。我用 browser.load() 加载这个页面,我得到了 HTML。在我尝试转到第 2 页后,使用 browser.runjs() 模拟点击。我在 onClick 上调用 javascript。然后,如果我再次调用 browser._get_html(),则 HTML 是相同的。 谁能帮我?谢谢

【问题讨论】:

  • 请详细说明您遇到的问题。
  • 我从一个 url 开始阅读了几页(例如:www.mypage.com)。要从一个页面移动到另一个页面,我必须单击带有数字的链接(例如:2.3.4.5...)。该链接激活 javascript。我的问题是:我的代码只加载第一页,而不是另一页。 (对不起我的英语)
  • 在您的问题中添加更完整的描述,以及演示问题的代码和输出。请使用真实的网址。 sscce.org
  • 对不起。这是第一个网址:zoover.it/italia/lazio/roma/galileo/hotel。我用 browser.load() 加载这个页面,我得到了 HTML。在我尝试转到第 2 页后,使用 browser.runjs() 模拟点击。我在 onClick 上调用 javascript。然后,如果我再次调用 browser._get_html(),则 HTML 是一样的。
  • 这都是很好的信息。 把它放在你的问题中

标签: javascript python screen-scraping spynner


【解决方案1】:

如果您想要的 html 在弹出窗口中,您必须切换 spynner 框架。

spynner 为您提供的始终是活动框架 html,弹出窗口在其他框架中打开。

Spynner 是 qtwebwekit 的接口,qtwebkit 使用它:http://doc.qt.digia.com/4.7-snapshot/qwebframe.html

您可以看到有“子框架”,您可以使用 self.webframe 进行内省。

【讨论】:

  • 非常感谢您提供的信息。好的,我托盘看看。这对我来说并不容易..你能举个例子解释一下吗?再次感谢
猜你喜欢
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多