2016-11-30 3 views
0

urllib을 사용하여 Indeed.com에서 일부 정보를 긁어 내려고했습니다. 때로는 채용 링크가 채용 회사의 웹 페이지로 리디렉션됩니다. 이런 일이 발생하면 Indeed는 리디렉션 된 페이지로 계속 진행하는 대신 호환되지 않는 브라우저 나 장치를 사용하는 것에 대한 html을 약간의 문제로 만듭니다. 둘러보고 난 후 urllib의 사용자 에이전트를 스푸핑하여 브라우저처럼 보이게하는 것이 대부분이지만, 여기서는 그렇지 않은 것으로 나타났습니다.Python 3 웹 사이트가 사용자 에이전트 스푸핑을 사용할 때 스크레이퍼를 감지합니다.

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

Xylan (Xvfb)을 사용하는 헤드리스 방식으로 Selenium을 사용해 볼 수 있습니다. 실제로는 브라우저를 사용하여 브라우저 검색을 피할 수 있습니다 (프로그래밍 방식으로). –

답변

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 패키지를 사용하는 것입니다.