【问题标题】:python goto link generated by javascriptjavascript生成的python goto链接
【发布时间】:2011-06-15 23:06:09
【问题描述】:

大家! 我需要从网站获取一些数据,这些数据使用 javascript 生成其内容。 不知何故,借助 ClientForm 模块的帮助,我可以在网站上授权并通过将所需的表单值传递给搜索列表来获取所需的数据。 但是,我得到了几页结果。我需要遍历那些页面,保存它们。 但关键是“NEXT”页面按钮看起来像

a onclick="if(typeof jsfcljs == 'function') { 
               jsfcljs(document.getElementById('nestedView:j_id_id8pc10'),           
                   {'nestedView:j_id_id8pc10:next':'nestedView:j_id_id8pc10:next'},
                   '');
           }
           return false"
href="#" id="nestedView:j_id_id8pc10:next">next

我怎样才能用 python 继续这个链接?

【问题讨论】:

  • 请使用{} 格式化您的代码,使其可读。
  • 如果您可以访问jsfcljs 的源并且该站点使用真实页面进行分页(而不是内联 JS 更新),则可能可以这样做。如果它在 JS 中有效,那你就不走运了。

标签: javascript python hyperlink href


【解决方案1】:

您的选择基本上是:

  1. 弄清楚 javascript 在做什么,并尝试在 Python 中复制它,以便服务器向您发送相同的数据。如果您还没有使用它,那么 Firebug 就是您需要的那种东西。
  2. 使用浏览器控制框架(例如 Selenium RC)与使用 Python 的浏览器进行交互。

通常,选项 1 更直接,除非您已经熟悉使用框架来控制浏览器,或者 javascript 真的非常难以理解。

哦,还有 3:用 Python 编写一个 javascript+DOM 引擎。 (不,那是个玩笑。一个不存在是有原因的。)

【讨论】:

    【解决方案2】:

    也许我可以模拟一个 POST 请求(例如,从 firefox 中的 Live HTTP Headers 捕获它)并以这种方式在现场导航?因为重点是获取数据...获取数据的步骤类似(登录,填写 2 个搜索表单,循环浏览结果页面)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-26
      • 2016-10-11
      • 2011-09-06
      • 1970-01-01
      • 2018-01-16
      • 1970-01-01
      相关资源
      最近更新 更多