私のプロジェクトでプロキシローテーションを使用してウェブサイトからのアクセスを禁止しましたが、http://website/0001をhttp://website/9999に盗み、彼らは私をウェブサイト/ contact.htmlに送ります。手動でscrapy-rotating-proxiesパッケージを使用してプロキシを無効に設定しました
私はすでに設定で
ROTATING_PROXY_LIST = [ 'proxy1.com:8000', 'proxy2.com:8031', # ... ]
を私のプロキシリストを持っていると私は、このクモを作成しました:
next_page_url = response.url[17:]//getting the relative url from website/page
if next_page_url == "contact.html":
absolute_next_page = response.urljoin(last_page)
yield Request(absolute_next_page)
//should try the same page with different proxy
else:
next_page_url = int(next_page_url)+1
last_page = str(next_page_url).zfill(4)
absolute_next_page = response.urljoin(last_page)
yield Request(absolute_next_page)`
しかし、それはUnboundLocalErrorというエラーを与える:代入する前に、参照ローカル変数「LAST_PAGE」を
このスパイダーでプロキシが死んでいると指定する方法を教えてください。あるいは同じことをする別の方法がありますか?
のようにコードを変更する、このエラーを回避するためには、言及を忘れてしまったことがcontact.htmlに入力した場合ので、私は、start_urls変数の後にグローバル変数としてLAST_PAGEを初期化してきました私は最後のリクエストでアクセスしようとしていたのと同じリンクに戻る必要がありますが、私はまだそれを行う方法がわかりません。 –
私にあなたの完全なコードをpastebin.comに表示 – Umair
ここにhttps://pastebin.com/xDcC2AH8 –