LoginSignup
0
0

More than 1 year has passed since last update.

Scrapyでファイルのダウンロード

Last updated at Posted at 2022-08-01

Scrapyでファイルをダウンロード

はじめに

Scrapyでファイルをダウンロードしてみようと思ったのですが、調べてみると記事がほとんどなく手順整理もあわせてポイントを絞って書いてみます。

の2つを参考にしました。

対象者

  • Scrapyを使ってみたことがある人
  • ベーシックテンプレートやクロールテンプレートの基本操作を試してみたのでファイルの取得をしてみたい人

設定 

プロジェクトやspidersの作成方法は同じです。
基本的な設定は省略します。

spidersファイル.py
#ファイル取得部分
item = downloadItem() #items.pyのクラス
item['title'] = response.xpath('xxxx').get() #ファイル名にしたい元のファイル名 
item['file_urls'] = [response.xpath('yyyy').get()] #file_urlsはアレンジ不可
yield item
items.py
class downloadItem(scrapy.Item):
    title = scrapy.Field() 
    file_urls = scrapy.Field() 
    files = scrapy.Field() #file_urlsからDL・filesはアレンジ不可

pipelines.py
#DLするファイルのurlを使ってファイルを変更
class downloadPipeline(FilesPipeline):
    def file_path(self, request, response=None, info=None):
        file_paths = request.url.split("aaaa") #適当に
        return file_name
settings.py
#デフォルト CONCURRENT_REQUESTS = 32 
CONCURRENT_REQUESTS = 1 #同時リクエストを1に設定

#以下は追加
FILES_STORE = 'download' #ファイルダウンロード先 プロジェクトフォルダ内に作成される。
ITEM_PIPELINES = {
    '[プロジェクト名].pipelines.downloadPipeline': 1,
    }
#DOWNLOAD_DELAYの設定も忘れずに

実行

scrapy crawl [spidersファイル名] 

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0