2011-08-19 37 views
2

特定の検索エントリを取得し、その結果に関連付けられた.csvファイル全体を保存するクローラを作成しようとしています。Pythonサイトクローラ、Scrapyでファイルを保存する

私は必要なすべてのhtmlデータを解析するために既にスパイダーをログインしていますが、今必要なファイルをどのように保存できるかを把握するだけです。

ので、検索は、Webブラウザで相関.csvファイルを保存するように求められますように、この https://www.thissite.com/data/file_download.jsp?filetype=1&id=22944

などのリンクを返します。このページをロードしてファイルをダウンロードできるようにするには、どのようにしてスパイダーに書き込むことができますか?または、情報への静的リンクを取得する方法はありますか?

+0

URLが返すものを見ると、おそらくリダイレ​​クトです。 – tripleee

+0

リダイレクトではありません。 – howdoicrawlweb

答えて

1

CSVファイルへのリンクをクロールした場合は、単にページにログインできるwgetを使用してダウンロードできます。

あなたは--http-ユーザーと--http-passwdのを指定するか、次のようにCookieを使用します。それはあなたのサイトにログインをどのように扱うかにdepens

$ wget --cookies=on --keep-session-cookies --save-cookies=cookie.txt --post-data "login=USERNAME&password=PASSWORD" http://first_page 
$ wget --referer=http://first_page --cookies=on --load-cookies=cookie.txt --keep-session-cookies --save-cookies=cookie.txt http://second_page 

。 wgetを使ってページにログインするには、他にもいくつかの方法がありますが、私はグーグルでそれらを見つけることができます。

私はこのすべてを特別なScrapy Pipelineで行うことをお勧めします。だから、それはすべてScrapyで行われ、外部のスクリプトでは行われません。

+0

cookie.txtのファイル形式は何ですか?だから私は手作業でクッキーを追加することができます。 – howdoicrawlweb

+0

はあなたに頭を教えてもらえませんが、どのページでもそれを試してみて、自分で書式を見てみるのはどうですか? :)おそらくあなたがFirefoxで見ることができるのと同じです – naeg

関連する問題