更改spynner用户代理不起作用

时间:2016-03-25 14:07:44

标签: javascript python user-agent spynner

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

出于这个原因,我们必须更改spynner User Agent,因为默认情况下这不是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

1 个答案:

答案 0 :(得分:0)

要覆盖您可以使用的navigator.userAgentthis 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是包含此要点的字符串。