2016-03-25 4 views
1

У нас возникла следующая ситуация: Нам нужно получить доступ к сайту, к которому необходимо получить доступ только с помощью MSIE.Изменение агента пользователя spynner не работает

По этой причине мы должны изменить агент пользователя 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() 

Debugging 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 

ответ

0

Для переписать navigator.userAgent значение вы можете использовать this gist. Test это работает следующий скрипт:

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 это строка, содержащая эту суть.