前提・実現したいこと
scrapyでグラビアアイドルの画像を収集したいです。
まずは一つの記事に掲載されているグラビアアイドルの画像を収集するプログラムを考えています。
記事はhttps://news.mynavi.jp/article/20191229-947707/です。
ただ実行しても画像を収集できません。
特にエラーメッセージは表示されません。
どこが悪いのかご助力いただけたらと思います。
spider.py
python
1import scrapy 2from scrapy.spiders import CrawlSpider, Rule 3from scrapy.linkextractors import LinkExtractor 4 5from gradol.items import GradolItem 6class SaveGradolSpider(CrawlSpider): 7 name = 'save_gradol' 8 allowed_domains = ['news.mynavi.jp/'] 9 start_urls = ['https://news.mynavi.jp/article/20191229-947707/'] 10 11 12 rules = ( 13 Rule(LinkExtractor(allow=(), unique=True), callback="parse_page", follow=True), 14 ) 15 16 17 def parse_page(self, response): 18 item = GradolItem() 19 item["image_urls"].append(start_urls.rsplit("/", 3)[0] + "/" + response.xpath("//li[contains(@class, 'item-05')]/a/@href").extract()) 20 yield item
itemには以下のように入力しました。
items.py
python
1import scrapy 2from scrapy.item import Item, Field 3 4class GradolItem(scrapy.Item): 5 image_urls = scrapy.Field() 6 images = scrapy.Field()
settingsには以下を追記しました。
python
1ITEM_PIPELINES = {'gradol.pipelines.MyImagesPipeline': 1} 2IMAGES_STORE = './savedImages' 3MEDIA_ALLOW_REDIRECTS = True 4
なにとぞよろしくお願いいたします。
あなたの回答
tips
プレビュー