1

我们遇到以下情况:我们需要访问一个只能使用 MSIE 访问的站点。

为此,我们必须更改 spynner 用户代理,因为默认情况下这不是 MSIE。

这是我的代码:

import re
import spynner
from pyquery import PyQuery
import time
import sys
tipo_navegador = "Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))"

br = spynner.Browser(
            ignore_ssl_errors=True,
            user_agent=tipo_navegador,
            debug_level=spynner.WARNING,
            debug_stream=sys.stderr)
br.create_webview()
br.show()
br.set_html_parser(PyQuery)
br.load("https://myurl.com/index.php")
br.browse()
br.close()

调试 Spynner 我们看到了修改后的用户代理:

Page load started
Request: GET https://myurl.com/index.php
  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  User-Agent: Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))

从网站我们收到默认的用户代理:

Mozilla/5.0 (Windows NT 6.0; rv:43.0) Gecko/20100101 Firefox/43.0
4

1 回答 1

0

要覆盖navigator.userAgent值,您可以使用 这个 gist。运行以下脚本对其进行测试:

browser = spynner.Browser(user_agent='myFakeUserAgent',
                          headers=headers_list)

browser.runjs(change_user_agent_script + 'document.write((navigator.userAgent))')
browser.browse()

change_user_agent_script包含此要点的字符串在哪里。

于 2016-11-03T20:32:22.757 回答