2012-05-09 14 views
1

以前に一時停止したスクラップジョブを再開すると、Scrapyスパイダーがウェブサイトにログインする方法はありますか?スクラップジョブの再開時にスクラップしたウェブサイトに移動

編集:明確にするために、私の質問は、一般的にクッキーではなく、スクリーニングスパイダーについてです。おそらくより良い質問は、Scrapyスパイダーがジョブディレクトリでフリーズした後に復活したときに呼び出されるメソッドがあるかどうかです。

答えて

0

はい、できます。

スクレーパーの正確なワークフローについては、より明確にする必要があります。

とにかく、初めてスクレイピングしたときにログインし、スクレイピングを再開しているときに同じCookieを使用したいと思っています。

httplib2ライブラリを使用して、このようなことを行うことができます。ここでは、examples pageのコードサンプルを示します。より明確にするためにコメントを追加しました。場合

import urllib 
import httplib2 

http = httplib2.Http() 

url = 'http://www.example.com/login' 
body = {'USERNAME': 'foo', 'PASSWORD': 'bar'} 
headers = {'Content-type': 'application/x-www-form-urlencoded'} 

//submitting form data for logging into the website 
response, content = http.request(url, 'POST', headers=headers, body=urllib.urlencode(body)) 

//Now the 'response' object contains the cookie the website sends 
//which can be used for visiting the website again 

//setting the cookie for the new 'headers' 
headers_2 = {'Cookie': response['set-cookie']} 

url = 'http://www.example.com/home' 

// using the 'headers_2' object to visit the website, 
response, content = http.request(url, 'GET', headers=headers_2) 

あなたは、クッキーがどのように動作するか明確ではないsearchを行います。簡単に言えば、 'Cookies'はサーバーがセッションを維持するのを支援するクライアント側の技術です。

+0

私は 'Scrapy spider'の部分を見逃しました。これは簡単なスクレイピングスクリプトに関係します。 – pcx

+0

チップのスーパーマーに感謝します!あなたが指摘したように、私の質問はScrapyについてです。私はこれを明確にするためにオリジナルを編集します。 – kevin

関連する問題