useragentstring useragent headers fake python html web-scraping python-requests wget

useragent - ¿Cómo usar las solicitudes de Python para falsificar una visita al navegador?



user agent table (4)

Intente hacer esto, utilizando Firefox como agente de usuario falso (además, es un buen script de inicio para raspar web con el uso de cookies):

#!/usr/bin/env python2 # -*- coding: utf8 -*- # vim:ts=4:sw=4 import cookielib, urllib2, sys def doIt(uri): cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) page = opener.open(uri) page.addheaders = [(''User-agent'', ''Mozilla/5.0'')] print page.read() for i in sys.argv[1:]: doIt(i)

USO:

python script.py "http://www.ichangtou.com/#company:data_000008.html"

Quiero obtener el contenido del siguiente sitio web. Si utilizo un navegador como Firefox o Chrome, podría obtener la página web real que quiero, pero si uso el paquete de solicitudes de Python (o el comando wget ) para obtenerlo, devuelve una página HTML totalmente diferente. Pensé que el desarrollador del sitio web había hecho algunos bloqueos para esto, así que la pregunta es:

¿Cómo falsifico una visita al navegador utilizando solicitudes python o command wget?

http://www.ichangtou.com/#company:data_000008.html


La raíz de la respuesta es que la persona que hace la pregunta debe tener un intérprete de JavaScript para obtener lo que buscan. Lo que encontré es que puedo obtener toda la información que quería en un sitio web en json antes de que fuese interpretada por JavaScript. Esto me ha ahorrado un montón de tiempo en lo que sería analizar HTML esperando que cada página web esté en el mismo formato.

Por lo tanto, cuando recibe una respuesta de un sitio web que utiliza solicitudes, realmente mire el html / texto porque es posible que encuentre el JSON javascripts en el pie de página, listo para ser analizado.


Proporcione un encabezado User-Agent :

import requests url = ''http://www.ichangtou.com/#company:data_000008.html'' headers = {''User-Agent'': ''Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36''} response = requests.get(url, headers=headers) print(response.content)

FYI, aquí hay una lista de cadenas de User-Agent para diferentes navegadores:

Como nota al margen, hay un paquete de terceros bastante útil llamado fake-useragent que proporciona una agradable capa de abstracción sobre los agentes de usuario:

fake-useragent

Fareler de useragent simple actualizado con la base de datos del mundo real

Manifestación:

>>> from fake_useragent import UserAgent >>> ua = UserAgent() >>> ua.chrome u''Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36'' >>> ua.random u''Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.67 Safari/537.36''


si esta pregunta aún es válida

Utilicé fake-useragent

Cómo utilizar:

from fake_useragent import UserAgent import requests ua = UserAgent() print(ua.chrome) header = {''User-Agent'':str(ua.chrome)} print(header) url = "https://www.hybrid-analysis.com/recent-submissions?filter=file&sort=^timestamp" htmlContent = requests.get(url, headers=header) print(htmlContent)

salida:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1309.0 Safari/537.17 {''User-Agent'': ''Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36''} <Response [200]>