4

私は新しい開発者なので、私の無知を許してください。

Python でいくつかの Web ページにアクセスするプロキシを使用しようとしています。動作していると思われるさまざまなプロキシと組み合わせて、urllib2 と requests モジュールの両方を使用してみました。ただし、IP がプロキシとして表示されていることを確認するためにサイトにアクセスすると、プロキシではなく実際の IP アドレスが表示されます。

これにより、次の 4 つの可能性があると結論付けられます。

  1. これらのモジュールは壊れています。これは非常にありそうにないようですが、可能です。
  2. コードが正しくありません。非常に可能性が高いですが、特にエラーを特定することはできません。
  3. プロキシ経由でルーティングしている場合でも、ルート IP を検出する方法があります。
  4. 私が考えていない何か。

どんな助けでも大歓迎です!

import requests
import urllib2
from bs4 import BeautifulSoup

# Using requests module
proxy_dict = {"http":"http://123.45.172.115:8080"}
url = 'https://check.torproject.org/'
response = requests.get(url, proxies=(proxy_dict))
html = response.content
soup = BeautifulSoup(html)
ip = str(soup.b.text)

# Using urllib2
prox = urllib2.ProxyHandler(proxy_dict)
opener = urllib2.build_opener(prox, urllib2.HTTPHandler(debuglevel=1))
urllib2.install_opener(opener)
response = opener.open(url)
4

2 に答える 2

1

あなたのコードはかなり正しいようです。これらのサイトは実際には X_FORWARDED_FOR または他の同様の HTTP ヘッダー値を使用していると思われるため、オプション番号 3 が最も可能性が高くなります。

あなたのすべての例は、実際にこのヘッダーを使用していることを示すVPNを介してバウンスする場合を除いて、プロキシアドレスの代わりに元のIPアドレスを使用しています.

于 2013-09-23T02:33:01.337 に答える
0

私も同様の問題を抱えていましたが、それは透過的なプロキシであり、ルート IP が渡されていたことが判明しました。したがって、オプション番号3。

http://www.lagado.com/proxy-testからリクエストを実行することで、これをさらにテストできます。

これにより、リクエストが通過した透過的なプロキシが表示されるため、プロキシが実際に機能していることをテストできます。

于 2015-09-13T15:57:17.787 に答える