scrapy 图片数据的爬取

  • 基于scrapy进行图片数据的爬取:

    • 在爬虫文件中只需要解析提取出图片地址,然后将地址提交给管道
    • 配置文件中写入文件存储位置:IMAGES_STORE = './imgsLib'
    • 在管道文件中进行管道类的制定:
      • 1.from scrapy.pipelines.images import ImagesPipeline
      • 2.将管道类的父类修改成ImagesPipeline
      • 3.重写父类的三个方法
  • 校花网爬取示例

    • spider.py文件

      import scrapy
      from imgspider.items import ImgspiderItem class ImgSpiderSpider(scrapy.Spider):
      name = 'img_spider'
      # allowed_domains = ['www.xxx.com']
      start_urls = ['http://www.521609.com/daxuemeinv/']
      url = 'http://www.521609.com/daxuemeinv/list8%d.html'
      pageNum = 1 def parse(self, response):
      li_list = response.xpath('//*[@id="content"]/div[2]/div[2]/ul/li')
      # 拼接图片url
      for li in li_list:
      print(self.pageNum)
      img_src = 'http://www.521609.com' + li.xpath('./a[1]/img/@src').extract_first()
      item = ImgspiderItem()
      item['src'] = img_src
      yield item if self.pageNum < 3:
      self.pageNum += 1
      new_url = format(self.url % self.pageNum)
      yield scrapy.Request(new_url, callback=self.parse)
    • pipelines.py文件

      import scrapy
      from imgspider.items import ImgspiderItem class ImgSpiderSpider(scrapy.Spider):
      name = 'img_spider'
      # allowed_domains = ['www.xxx.com']
      start_urls = ['http://www.521609.com/daxuemeinv/']
      url = 'http://www.521609.com/daxuemeinv/list8%d.html'
      pageNum = 1 def parse(self, response):
      li_list = response.xpath('//*[@id="content"]/div[2]/div[2]/ul/li')
      # 拼接图片url
      for li in li_list:
      print(self.pageNum)
      img_src = 'http://www.521609.com' + li.xpath('./a[1]/img/@src').extract_first()
      item = ImgspiderItem()
      item['src'] = img_src
      yield item if self.pageNum < 3:
      self.pageNum += 1
      new_url = format(self.url % self.pageNum)
      yield scrapy.Request(new_url, callback=self.parse)

scrapy --爬取媒体文件示例详解的更多相关文章

  1. Python爬虫之爬取淘女郎照片示例详解

    这篇文章主要介绍了Python爬虫之爬取淘女郎照片示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 本篇目标 抓取淘宝MM ...

  2. Python爬虫:爬取喜马拉雅音频数据详解

    前言 喜马拉雅是专业的音频分享平台,汇集了有声小说,有声读物,有声书,FM电台,儿童睡前故事,相声小品,鬼故事等数亿条音频,我最喜欢听民间故事和德云社相声集,你呢? 今天带大家爬取喜马拉雅音频数据,一 ...

  3. python 爬取媒体文件(使用chrome代理,启动客户端,有防火墙)

    #coding = utf-8 ''' 中文转经纬度 ''' import time,json import urllib.request from selenium import webdriver ...

  4. python 爬取媒体文件(无防火墙)

    #coding = utf-8 import requests import pandas as pd import os,time root_path = './根目录/' input_file = ...

  5. Scrapy框架——介绍、安装、命令行创建,启动、项目目录结构介绍、Spiders文件夹详解(包括去重规则)、Selectors解析页面、Items、pipelines(自定义pipeline)、下载中间件(Downloader Middleware)、爬虫中间件、信号

    一 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的用途十分广泛,可 ...

  6. 【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神

    原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http:/ ...

  7. 转 Scrapy笔记(5)- Item详解

    Item是保存结构数据的地方,Scrapy可以将解析结果以字典形式返回,但是Python中字典缺少结构,在大型爬虫系统中很不方便. Item提供了类字典的API,并且可以很方便的声明字段,很多Scra ...

  8. 在java poi导入Excel通用工具类示例详解

    转: 在java poi导入Excel通用工具类示例详解 更新时间:2017年09月10日 14:21:36   作者:daochuwenziyao   我要评论   这篇文章主要给大家介绍了关于在j ...

  9. 史上最全的maven pom.xml文件教程详解

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

随机推荐

  1. BI和报表的区别在哪?还傻傻分不清楚吗?

    1.面向人群不同 报表主要针对IT人员,或者专业的报表开发人员.用户需要具备一定的编程知识.制作一张报表通常需要先由业务人员提出需求,再由IT部门人员取数制作报表. BI主要面向业务人员和管理人员.B ...

  2. 生产环境想要对某个Pod排错、数据恢复、故障复盘有什么办法?

    生产环境想要对某个Pod排错.数据恢复.故障复盘有什么办法? k8s考点灵魂拷问9连击之5 考点之简单描述一下k8s副本集ReplicaSet有什么作用? 考点之为什么ReplicaSet将取代Rep ...

  3. javaweb添加日常基本依赖

    <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql ...

  4. C++ 删除一个字符串中的指定字符

    Q:一个数字是以xxx,yyy,zzz的字符串形式存储的,将逗号消去并转化为整数输出 方法一:char数组,即定义时s1定义为 char s1[20]的形式: //删除输入字符串中的逗号,并构建新串 ...

  5. net core or Linux

    某用户执行net core sdk 版本不生效 sudo chmod +x /home/username/netcore3.1sdk/dotnet //某个用户执行新版本net core sdk

  6. C#中?和:?和??代表什么

    ?代表可空类型修饰符    引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.为了使值类型也可为空,就可以使用可空类型?:带便三元表达式    int a=b>c?b:c 如果 ...

  7. springboot-jta-atomikos多数据源事务管理

    背景 我们平时在用springboot开发时,要使用事务,只需要在方法上添加@Transaction注解即可,但这种方式只适用单数据源,在多数据源下就不再适用: 比如在多数据源下,我们在一个方法里执行 ...

  8. linux作业--第十二周

    1.主从复制及主主复制的实现 2.xtrabackup实现全量+增量+binlog恢复库 3.MyCAT实现MySQL读写分离 4.ansible常用模块介绍

  9. Vue3中setup语法糖学习

    目录 1,前言 2,基本语法 2,响应式 3,组件使用 3.1,动态组件 3.2,递归组件 4,自定义指令 5,props 5.1,TypeScript支持 6,emit 6.1,TypeScript ...

  10. 使用vscode Container开发调试envoy

    由于我最近在研究 envoy 这个项目,这是个cpp的项目,对于我这种cpp新人来说还是比较有压力的,感觉处处都是坑,开个引导文章记录一下. 如果要研究 envoy 项目源码,那肯定是需要代码跳转的, ...