我们遇到了以下情况:我们需要访问一个只需要使用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发布于 2016-11-04 04:32:23
要覆盖navigator.userAgent值,可以使用this 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是包含此要点的字符串。
https://stackoverflow.com/questions/36221519
复制相似问题