2015-10-24 13 views
5

私はScientialでProxyMeshを使い始めました。 ProxyMeshは、1つのポートにIPアドレスのプールを提供することになっています。以下のサンプルコードはループで繰り返されており、ミドルウェアは有効になっており、全体的にうまく動作します。特定の要求ごとにどのIPアドレスが使用されているか(もしあれば)要求に使用されているIPアドレスを確認するPython/Scrapy + ProxyMesh

request = scrapy.Request(producturl, self.parse_product_info) 
request.meta['proxy'] = 'http://uk.proxymesh.com:xxx' 
yield request 

私はSOFで同様の投稿を見つけましたが、この特定の質問には対処しませんでした。

+1

おそらく、proxymeshがヘッダー内にその情報を返した場合、それをレスポンスで出力しようとすることができます: 'print response.headers'。 btw、[crawlera](http://crawlera.com/)は実際に使用されたプロキシを応答ヘッダーに返します。 – eLRuLL

+0

これは良いヒントです。応答ヘッダ:X-Proxymesh-Ipがあります。私はそれをresponse.headers.get( 'X-Proxymesh-Ip')として解析することができました。 ProxyMeshが使用されているという事実がサイトの管理者にも見えて、これを隠すことができるのであれば私は気にしませんか? – Turo

+1

もちろん、サイトはどのプロキシ(またはIP)が自分のサイトをクロールするのに使われているのか知っていますが、 'X-Proxymesh-Ip'はあなたに返されます。少なくともそれは[crawlera](http://crawlera.com)の仕組みです。 – eLRuLL

答えて

3

コメントで指定され、情報はそれを確認し、レスポンスヘッダに来るように:

def parse_response(self, response): 
    print response.headers 

あなたが割り当てられたプロキシとX-Proxymesh-Ipヘッダが表示されるはずです。

もう1つの方法は、さらに多くの機能(ヘッダー、セッション、Cookieの処理など)とより良いドキュメントを提供するcrawleraを使用することです。

関連する問題