2016-11-30 3 views
0

urllibを使用してIndeed.comから情報を削り取ろうとしています。場合によっては、求人会社のウェブページにジョブリンクがリダイレクトされることがあります。これが起こると、Indeedは、リダイレクトされたページに進むのではなく、互換性のないブラウザやデバイスを使用することについてhtmlを投げ捨てます。周りを見回した後、ほとんどの場合、ブラウザのように見えるようにurllibのユーザーエージェントを偽装することはこれを回避するのに十分であることがわかりましたが、ここではそうは思われません。User-Agentスプーフィングを使用すると、Python 3 Webサイトがスクレーパーを検出します

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パッケージを使用することです。

関連する問題