私はウェブサイトをスクラップしようとしています。私は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情報を持っている、しかし、page
(proxies == None
)は、すべてのHTML詳細(私はすべてのXPathを見つけることができています)との適切なウェブページの情報を持っています。これを回避する方法はありますか?あるいは、プロキシを使用しているかどうかWebサイトが簡単に要求を理解する方法はありますか?
つまり、これらを回避する方法はありません。ハックやワークワーキングはありません。 –