scrapy爬虫下载文件、重命名文件
scrapy下载文件并重命名文件,python下载文件并重命名文件
目标:下载网页 http://www.zimuku.cn/search?q=&t=onlyst&p=1 上的字幕文件
设计:涉及scrapy的文件下载中间件
扩展:下载图片也是同样的原理
代码:如下
(1)爬虫模块
# coding:utf-8 import sys import urllib import os reload(sys) sys.setdefaultencoding( "utf-8" ) import scrapy from w3lib.html import remove_tags from subtitle_crawler.items import SubCrawlerItemclass SubSpider(scrapy.Spider): name = "sub" allowed_domains = [] start_urls = [ "http://www.zimuku.cn/search?q=&t=onlyst&p=%s" %i for i in range(1,21) ] def parse(self, response): hrefs = response.selector.xpath('//div[contains(@class, "persub")]/h1/a/@href').extract() for href in hrefs: url = response.urljoin(href) # print "processing1: ", url yield scrapy.Request(url, callback=self.parse_detail) def parse_detail(self, response): url = response.selector.xpath('//li[contains(@class, "dlsub")]/div/a/@href').extract()[0] print "processing2: ", urlitem = SubtitleCrawlerItem() item['file_url'] = [url] yield item
(2)item模块
import scrapy class SubCrawlerItem(scrapy.Item): # define the fields for your item here like: file_url = scrapy.Field()
(3)Pipeline模块,继承重命名模块
# -*- coding: utf-8 -*- # Define your item pipelines here # # Don't forget to add your pipeline to the ITEM_PIPELINES setting # See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html import scrapy import os # from scrapy.pipeline.images import ImagesPipeline from scrapy.pipelines.files import FilesPipeline from scrapy.exceptions import DropItem class MyfilesPipeline(FilesPipeline): def get_media_requests(self, item,info): for url in item["file_url"]: yield scrapy.Request(url) def file_path(self, request, response=None, info=None): """ 重命名模块 """ path = os.path.join('D:\\result', ''.join( [request.url.replace('//', '_').replace('/', '_').replace(':', '_').replace('.', '_').replace('__','_'), '.zip'])) return path
(4)settings模块 加入FILES_STORE 并修改 ITEM_PIPELINES
FILES_STORE是下载路径
FILES_STORE = 'D:\\result' ITEM_PIPELINES = { # 'subtitle_crawler.pipelines.SubtitleCrawlerPipeline': 300, 'subtitle_crawler.pipelines.MyfilesPipeline': 400,# 'scrapy.pipeline.files.FilesPipeline': 1 }
有什么不会的可以在下面留言
参考官方文档:http://scrapy-chs.readthedocs.io/zh_CN/0.24/topics/images.html
scrapy爬虫下载文件、重命名文件相关推荐
- node.js 文件重命名||文件复制||删除||追加 增删改查
文件重命名 //文件处理 const fs = require("fs") //文件路径 const pathToFile = path.join(__dirname, " ...
- 批处理命令 删除文件,重命名文件
@echo off rem %1 为路径参数; rem del /q /s del /q /s D:\数据库-勿删\Data\config.xml 删除文件 rem rename D:\数据库-勿删 ...
- Linux 命令之 mv -- 移动文件/重命名文件
文章目录 命令介绍 语法格式 常用选项 命令示例 (一)文件重命名 (二)目录重命名 (三)移动目录 (四)移动目录且重命名 (五)将一个目录下的内容移动到另外一个目录下 (六)移动文件 (七)移动多 ...
- (转)C#对FTP的操作(上传,下载,重命名文件,删除文件,文件存在检查)
转自:http://blog.csdn.net/hejialin666/article/details/3522815 1 using System; 2 using System.Collectio ...
- cmd ren命令 重命名文件(夹)
ren取自rename的前三个字母,name在英文中有"为--取名"的意思,而re是前缀,有"重新做某事"的含义,结合起来,rename就是重命名的含义. re ...
- python下载文件并改名_第46p,8行代码,用Python批量重命名文件
大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第46篇文章,第二阶段的课程:Python基础知识:小案例之用Python批量重命名文件. 学习本课程,建议先看一遍:[计算机基础知 ...
- python 重命名文件出现乱码_下载的文件名总是「乱码」?这里有各平台的解决方法...
说起「乱码」,没遇到过的电脑用户可能是极少的,尤其在国内中文环境下.暴露年龄的「烫烫烫」系列乱码已经绝迹,现如今遇到的往往是类似「%E9%AB%98%E9%A2%91」和「èªå¨é£è±è½»ä¼¼ ...
- 华为云OBS对象存储使用临时URL访问,并对下载文件重命名
目录 解读 1.使用临时URL访问OBS,并获取临时URL 官方文档 举例 2.使用临时URL访问OBS,并对临时URL下载的文件重命名 分析 举例 解读 在使用OBS进行对云上文件进行下载的时候,发 ...
- 迅雷下载iso镜像失败(文件重命名失败)
打开文件夹找到相应文件 重命名(去掉后缀)即可
最新文章
- mysql 查询不使用索引_简单的mySQL查询不使用索引
- 三维激光重建原理与实现HALCON
- python介绍和用途-python数据类型介绍与使用
- 第10章 序列的修改、散列和切片
- Mysql水平分表-后端代码
- sys.getsizeof(), 字节之间的换算关系
- where is path tag generated
- 服务治理·理论篇(一)
- php 页面加载进度条,HTML5/CSS3 网页加载进度条的实现,下载进度条等经典案例
- java 鼠标精灵_纯Java实现跨平台鼠标键盘模拟、找图找色,Java版按键精灵
- python中大括号是什么_Python中模块(Module)和包(Package)到底是什么,有什么区别?...
- VS2015安装Visual C++的Win32控制台应用程序
- 看黄天鹅如何下一颗高端鸡蛋?
- 服务器启动成功网页无法访问,apache启动后无法访问网页的解决方法
- 异常捕获与自定义迭代器
- python语言是什么语言
- 【微机原理大作业】从0开始设计RTC电子钟系统(三)(含完整源码和仿真图及下载地址)
- ASTM D 3801固体塑料垂直燃烧试验
- 这是烙印,是成长的陪伴,是归属
- OPENCV图片数字识别
热门文章
- 许多代码段,没准儿有你需要的 C++ Builder
- mete20可以升级鸿蒙,从微信小程序到鸿蒙js开发【12】——storage缓存自动登录
- 算法分析与设计CH3:Growth of Functions
- 现在不少别墅、村屋等自建房,屋主会尽量“扩大面积”,却违反了很多基本的风水原则...
- 为什么手机里的小爱音响app里搜不到家里的小爱音箱_小米随身版小爱蓝牙音箱【开箱体验】,49的小爱音箱,值了...
- 【微服务】初识Docker
- 计算机网络(17)——虚电路网络与数据报网络
- 医学类计算机基础考试卷,计算机基础试题练习题库.doc
- android 基站经纬度,android手机获取gps和基站的经纬度地址实现代码
- 树莓派4B安装snort3