【问题标题】:Scrapy Media Pipeline ,files not downloadingScrapy Media Pipeline,文件未下载
【发布时间】:2017-08-03 04:59:39
【问题描述】:

我是 Scrapy 的新手。我正在尝试使用媒体管道下载文件。但是当我运行蜘蛛时,文件夹中没有存储任何文件。

蜘蛛:

import scrapy
from scrapy import Request
from pagalworld.items import PagalworldItem

class JobsSpider(scrapy.Spider):
    name = "songs"
    allowed_domains = ["pagalworld.me"]
    start_urls =['https://pagalworld.me/category/11598/Latest%20Bollywood%20Hindi%20Mp3%20Songs%20-%202017.html']

    def parse(self, response):
        urls = response.xpath('//div[@class="pageLinkList"]/ul/li/a/@href').extract()

        for link in urls:

            yield Request(link, callback=self.parse_page, )




    def parse_page(self, response):
        songName=response.xpath('//li/b/a/@href').extract()
        for song in songName:
            yield Request(song,callback=self.parsing_link)


    def parsing_link(self,response):
        item= PagalworldItem()
        item['file_urls']=response.xpath('//div[@class="menu_row"]/a[@class="touch"]/@href').extract()
        yield{"download_link":item['file_urls']}

物品文件:

import scrapy


class PagalworldItem(scrapy.Item):


    file_urls=scrapy.Field()

设置文件:

BOT_NAME = 'pagalworld'

SPIDER_MODULES = ['pagalworld.spiders']
NEWSPIDER_MODULE = 'pagalworld.spiders'
ROBOTSTXT_OBEY = True
CONCURRENT_REQUESTS = 5
DOWNLOAD_DELAY = 3
ITEM_PIPELINES = {

'scrapy.pipelines.files.FilesPipeline': 1
}
FILES_STORE = '/tmp/media/'

输出如下:

【问题讨论】:

标签: python web-scraping scrapy


【解决方案1】:
def parsing_link(self,response):
    item= PagalworldItem()
    item['file_urls']=response.xpath('//div[@class="menu_row"]/a[@class="touch"]/@href').extract()
    yield{"download_link":item['file_urls']}

你正在屈服:

yield {"download_link": ['http://someurl.com']}

scrapy 的媒体/文件管道在哪里工作,您需要生成包含 file_urls 字段的项目。所以试试这个:

def parsing_link(self,response):
    item= PagalworldItem()
    item['file_urls']=response.xpath('//div[@class="menu_row"]/a[@class="touch"]/@href').extract()
    yield item

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-07
相关资源
最近更新 更多