2016-11-30 2 views
0

Я пытаюсь очистить некоторую информацию от Indeed.com с помощью urllib. Иногда ссылка на работу перенаправляется на веб-страницу найма компании. Когда это происходит, действительно выдает некоторые html об использовании несовместимого браузера или устройства, а не продолжает перенаправлять страницу. Оглянувшись, я обнаружил, что в большинстве случаев обманывать пользовательский агент urllib, чтобы выглядеть как браузер, достаточно, чтобы обойти это, но, похоже, это не так.Сайт Python 3 обнаруживает скребок при использовании спуфинга User-Agent

Любые предложения о том, куда идти, помимо подмены User-Agent? Возможно ли, что действительно может реализовать User-Agent подделанный, и что нет никакого способа обойти это?

Вот пример кода:

import urllib 
from fake_useragent import UserAgent 
from http.cookiejar import CookieJar 

ua = UserAgent() 

website = 'http://www.indeed.com/rc/clk?jk=0fd52fac51427150&fccid=7f79c79993ec7e60' 
req = urllib.request.Request(website) 
cj = CookieJar() 
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj)) 
opener.addheaders = [('User-Agent', ua.chrome)] 
response = opener.open(req) 

print(response.read().decode('utf-8')) 

Спасибо за помощь!

+0

Вы можете попробовать использовать Selenium в безголовом подходе (используя Xvfb), который «избегал» обнаружения браузера, фактически используя браузер (но программным способом). –

ответ

1

Этот заголовок обычно работает:

HDR = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11', 
     'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'} 

Другой вариант заключается в использовании requests пакета.