更改spynner用户代理不起作用



我们遇到以下情况:我们需要访问一个只能使用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

要覆盖navigator.userAgent值,可以使用这个要点。运行以下脚本测试它:

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是包含该要点的字符串。

最新更新