【问题标题】:spynner doesn't load XHR dataspynner 不加载 XHR 数据
【发布时间】:2014-05-05 19:10:20
【问题描述】:

我正在构建一个脚本来监控报告服务。根据处理报告的方式,报告以 HTML 格式显示或通过 XmlHttpRequest 提供。

作为检查页面的工具,我想使用 spynner,它非常适合 HTML,但是当数据来自 XHR 时,我似乎无法让它工作。

测试代码如下:

    #!/usr/bin/env python

# -*- coding: utf-8 -*-
__docformat__ = 'restructuredtext en'

from time import sleep
from spynner import browser
import pyquery
from PyQt4.QtCore import QUrl
from PyQt4.QtNetwork import QNetworkRequest, QNetworkAccessManager
from PyQt4.QtCore import QByteArray


def load_page(br):
  ret = br.load_jquery(True)
  print ret
  return 'Japan' in br.html

br = browser.Browser(
debug_level=4
)
br.load('https://foobar.eu/newton/cgi-bin/cognos.cgi')
br.create_webview()
br.show()

#br.load("https://foobar.eu/newton/cgi-bin/cognos.cgi?b_action=xts.run&m=portal/cc.xts&m_folder=iA37B5BBC0615469DA37767D2B6F1DCF1")
#br.browse()
res = br.load("https://foobar.eu:443/newton/cgi-bin/cognos.cgi?b_action=cognosViewer&ui.action=run&ui.object=/content/folder[@name='DMA Admin Zone']/folder[@name='02. Performance Benchmark Module']/folder[@name='1. Reports']/report[@name='CQM_Test_3_HTML_Heavy_Local_Processing_Final']&ui.name=CQM_Test_3_HTML_Heavy_Local_Processing_Final&run.outputFormat=&run.prompt=true", 1, wait_callback=load_page)


d = str(pyquery.PyQuery(br.html))

if d.find("Japan") > -1:
  print 'We discovered Japan!'
else:
  print 'Japan is nowhere to be seen!'

sleep(10)

cmets 中的 URL 是一个包含报告链接的页面。当我手动单击报告时,报告工作(通过 XHP)。但是,我似乎无法通过脚本使其工作。

br.load_jquery 总是返回 None。

作为帮助,我在手动单击链接时添加了部分 spynner 调试跟踪:http://fpaste.org/97583/13987135/ 在萤火虫中,我可以清楚地看到带有字符串“日本”的 XHP 响应。

我错过了什么?

【问题讨论】:

    标签: python xmlhttprequest spynner


    【解决方案1】:

    显然用以下代码替换加载页面功能使其工作:

    def load_page(br):
      br.wait(5)
      return 'Japan' in br.html
    

    【讨论】:

      猜你喜欢
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      • 2012-04-19
      • 2021-04-17
      • 2016-11-17
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多