2016-07-11 9 views
0

expedia.co.ukからホテルの部屋のデータをPython(2.7)で機械化(Mac)し、約1000のURL(200のホテルと5つの異なる期間)。私は、コードを実行したときPython Mechanize:ゲートウェイを開くとタイムアウトしますが、インターネットブラウザでURLが正常に開きます

が、それは最初の200のためにうまく働いた後、私は次のエラーを与えた。それ以来

httperror_seek_wrapper: Gateway Time-out

、それは常に私がエクスペディアからロードしようと何のために私は、このエラーが発生しますインターネットエクスプローラ/ Chromeから同じURLを開いても、Chromeは正常に動作します。ここで

はサンプルコードです:

import mechanize 
from bs4 import BeautifulSoup 
br = mechanize.Browser() 
br.set_handle_refresh(False) 
url = 'https://www.expedia.co.uk/Massena-Square-Hotels-Hotel-Aston-La-Scala.h53477.Hotel-Information?&rm1=a1&chkout=02/12/2016&chkin=01/12/2016' 
r = br.open(url, timeout = 2.0) 
soup = BeautifulSoup(r,'lxml') 

そして、これはトレースバックです:

Traceback (most recent call last):

File "", line 5, in r = br.open(url, timeout = 2.0)

File "build/bdist.macosx-10.5-x86_64/egg/mechanize/_mechanize.py", line 203, in open return self._mech_open(url, data, timeout=timeout)

File "build/bdist.macosx-10.5-x86_64/egg/mechanize/_mechanize.py", line 255, in _mech_open raise response

httperror_seek_wrapper: Gateway Time-out

私は別のタイムアウトを試みたが、異なるIPアドレス、同じエラーを使用します。これを回避する方法はありますか?

私が使用してタイムアウトエラーを取り除くことができます
+0

DoS攻撃を遅くする – YOU

答えて

0

import mechanize 

br = mechanize.Browser() 
br.set_handle_refresh(False) 

url = 'http://www.example.com' 
r = br.open(url, timeout = 2.0) 

request = br.request 
print(request.header_items()) 

--output:-- 
[('Host', 'www.example.com'), ('User-agent', 'Python-urllib/2.7')] 
:あなたはランダムなウェブサイトへの単純な要求のためのMechanizeのヘッダを印刷した場合、あなたはこのようなものが表示されます

br.addheaders.append(
    ('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9') 
) 

デフォルトの機械化ヘッダーは、Webサイトが承認していないコンピュータプログラム、 'Python-urllib/2.7'によって送信されたものとして要求を識別します。

ブラウザの開発者ツールを使用している場合は、ブラウザがあなたのURLに送信するリクエストを調べることができます。 [ネットワーク]タブの下で、要求ヘッダーを確認すると、デフォルトの機械化ヘッダーとは異なるヘッダーが表示されます。機械化リクエストでは、ブラウザが送信するヘッダーを複製するだけで済みます。あなたのリクエストがPythonプログラムではなく、ブラウザから来ていると特定した場合、ブラウザが送信する他のヘッダを追加せずに要求は成功します。

+0

ありがとう、それはそれを解決しました! –

関連する問題