2017-12-22 29 views
0

私はウェブサイトをスクラップしようとしています。私はTorモジュールを使用してプロキシを生成し、リクエストモジュールを使用してウェブサイトをクロールします。しかし、プロキシを持つリクエストモジュールは、Webサイトによって識別され、apiページ(api情報を示すメッセージ付きのhtml)で返されます。しかし、私がプロキシなしで(私の元のIPアドレスを使用して)リクエストを使用しているとき、私は適切な応答を得ています。私の質問は:どのようにWebサイトが正しくプロキシからの呼び出しをブロックし、元のIP(私の現在のIP)から受け入れなければならないと識別されている。リクエストが動作していないプロキシを使用する

ここ
import requests 

from stem import Signal 
from stem.control import Controller 
def renew_connection(): 
    with Controller.from_port(port=9051) as controller: 
     controller.authenticate(password="my_password") 
     controller.signal(Signal.NEWNYM) 
proxies_http = { 
'http': 'http://127.0.0.1:8118' 
} 
url = 'http://www.websitename.com' #### Not showing real address 
page_with_proxy = requests.get(url , headers=random_header , proxies = proxies_http , timeout = 5) 

page = requests.get(url , headers=random_header , proxies = None , timeout = 5) 

page_with_proxyは(いくつかのリンクを持って、APIの登録)いくつかのAPI情報を持っている、しかし、pageproxies == None)は、すべてのHTML詳細(私はすべてのXPathを見つけることができています)との適切なウェブページの情報を持っています。これを回避する方法はありますか?あるいは、プロキシを使用しているかどうかWebサイトが簡単に要求を理解する方法はありますか?

答えて

0

多くのウェブサイトは、torノード(および他のプロキシやVPNサービス)からのアクセスを明示的にブロックするか、少なくとも何らかの追加の検証を必要とします。通常は、要求のIPアドレスを既知の出口ノードのリストに照合することによってこれを行います。

単にプロキシサービスを通じてリクエストを渡す以外には、実際には適切な回避策はありません。

+0

つまり、これらを回避する方法はありません。ハックやワークワーキングはありません。 –

関連する問題