通过斗鱼给出的api,获取json文件,解析出图片地址,可以获取直播间的图片
斗鱼api接口:

http://open.douyucdn.cn/api/RoomApi/live/{num}

比如:
http://open.douyucdn.cn/api/RoomApi/live/1

当然也可以用这个获取好多妹子的图片,当然也有小哥哥
http://capi.douyucdn.cn/api/v1/getVerticalRoom?limit=20&offset=

项目文件为spider.py、item.py、pipeline.py

spider.py

# -*- coding: utf-8 -*-# 通过接口,爬取斗鱼图片保存本地import sys
reload(sys)
sys.setdefaultencoding("utf-8")import scrapy
import os
from douyu_item import DouyuItem
import json# 图片存储位置,也可以在 settings.py 中统一配置
BASE_DIR = os.path.dirname(os.path.abspath(__file__))IMAGES_STORE = os.path.join(BASE_DIR, "images")class DouyuSpider(scrapy.Spider):name = "douyu"allowed_domains = ["douyucdn.cn"]# 设置 图片存储位置 和 处理数据的管道文件custom_settings = {"IMAGES_STORE": IMAGES_STORE,"ITEM_PIPELINES":{"myspider.douyu_spider.douyu_pipeline.DouyuPipeline": 100,}}# 接口# base_url = "http://open.douyucdn.cn/api/RoomApi/live/"base_url = "http://capi.douyucdn.cn/api/v1/getVerticalRoom?limit=20&offset="offset = 0start_urls = [base_url + str(offset)]def parse(self, response):# 解析json文件datas = json.loads(response.body).get("data")# 停止条件if datas == []:print "已经没有图片啦"returnfor data in datas:room_src = data.get("room_src")room_name = data.get("room_name")item = DouyuItem()item["img_name"] = room_nameitem["img_link"] = room_srcyield item# 继续下一页self.offset += 20yield scrapy.Request(self.base_url + str(self.offset))

item.py

# -*- coding: utf-8 -*-import scrapyclass DouyuItem(scrapy.Item):img_name = scrapy.Field()  # 图片名称img_link = scrapy.Field()  # 图片链接

pipeline.py

# -*- coding: utf-8 -*-import scrapy
import os
from scrapy.pipelines.images import ImagesPipeline
from myspider.douyu_spider.douyu_spider import images_pathclass DouyuPipeline(ImagesPipeline):def get_media_requests(self, item, info):# 返回需要下载的图片链接img_link = item.get("img_link")yield scrapy.Request(img_link)def item_completed(self, results, item, info):# 将下载完成的图片重命名print results"""[(True, {'url': 'https://rpic.douyucdn.cn/amrpic-180422/4475021_1048.jpg', 'path': 'full/aa6df7582a33bbe025ec0e3ebd21ff133aa56b36.jpg', 'checksum': 'bc89354a577ee6cf22a7d065859bc990'})]"""image_path = [url["path"] for ok, url in results if ok]odl_path = os.path.join(images_path, image_path[0])new_path = os.path.join(images_path, item["img_name"]+".jpg")# 重命名os.rename(odl_path, new_path)return item

Python爬虫:scrapy爬取斗鱼直播图片相关推荐

  1. 【Python爬虫】爬取斗鱼直播信息(Fiddler抓包分析)

    大年初七了还不开始学习嘛? 过年期间一直再在看斗鱼直播平台的直播,学习主播的操作(骚套路)想着等有机会也来实战一波.看着看着就很想分析一下到底哪些主播观看的人数比较多,又为啥会有这么多人看.所以我们就 ...

  2. Python爬虫 - scrapy - 爬取妹子图 Lv1

    0. 前言 这是一个利用python scrapy框架爬取网站图片的实例,本人也是在学习当中,在这做个记录,也希望能帮到需要的人.爬取妹子图的实例打算分成三部分来写,尝试完善实用性. 系统环境 Sys ...

  3. 使用scrapy爬取斗鱼直播间信息

    目录 1. 谷歌抓包工具的使用 1.1 打开Chrome开发者工具的方法 1.2 开发者工具的结构 1.3 network模块 2. 使用谷歌抓包工具抓取斗鱼数据 3. 使用scrapy爬取斗鱼直播间 ...

  4. python爬虫:爬取所有车标图片保存本地

    python爬虫:爬取所有车标图片保存本地 这次没想到会这么轻松,找了几个网站分析结构发现腾讯汽车的json接口,很轻松爬下所有的图标.上图: 总共209个牌子,以车牌子命名. 分析网页 一开始找了好 ...

  5. python爬虫scrapy爬取新闻标题及链接_python爬虫框架scrapy爬取梅花网资讯信息

    原标题:python爬虫框架scrapy爬取梅花网资讯信息 一.介绍 本例子用scrapy-splash爬取梅花网(http://www.meihua.info/a/list/today)的资讯信息, ...

  6. Python爬虫入门——爬取贴吧图片

    最近忽然想听一首老歌,"I believe" 于是到网上去搜,把几乎所有的版本的MV都看了一遍(也是够无聊的),最喜欢的还是最初版的<我的野蛮女友>电影主题曲的哪个版本 ...

  7. python协程爬取斗鱼美女图片

    分析网站寻找需要的网址 用谷歌浏览器摁F12打开开发者工具,然后打开斗鱼颜值分类的页面,如图: 在里面的请求中,最后发现它是以ajax加载的数据,数据格式为json,如图: 圈住的部分是我们需要的数据 ...

  8. python爬虫scrapy爬取新闻标题及链接_18Python爬虫---CrawlSpider自动爬取新浪新闻网页标题和链接...

    一.爬取新浪新闻思路 1.创建scrapy项目 2.分析新浪新闻网站静态页面代码 3.编写对应的xpath公式 4.写代码 二.项目代码 步骤1.创建scrapy项目 scrapy startproj ...

  9. Python爬虫 --- Scrapy爬取IT桔子网

    转载自   成长之路丶关注@简书 目标: 此次爬取主要是针对IT桔子网的事件信息模块,然后把爬取的数据存储到mysql数据库中. 目标分析: 通过浏览器浏览发现事件模块需要登录才能访问,因此我们需要先 ...

最新文章

  1. 收藏 | 机器学习数据集汇总收集
  2. php 获取key的位置,PHP使用腾讯地图获取指定地址坐标:创建key(图文+视频)
  3. 您的第一个简单的机器学习项目
  4. php mysql xa事务_XA mysql php 分布式事务
  5. python float_Python float()
  6. Java基础---Java---网络编程---TCP、UDP、UDP-键盘录入方式数据、Socket、TCP复制文件、UDP-聊天
  7. WebCollector 网页正文快速提取
  8. Spring 常见注解原理和自定义@interface注解
  9. c++播放音频( c++ play audio),为C++应用程序添加启动音效
  10. 小程序车型品牌车系三级选择(地区也一样)
  11. 非技术类:分享蓝牙音频接收器转音箱的使用
  12. Excel最强玩法!用Excel做“动态日历表”,让你的好记性更牢固!
  13. java通过经纬度查询位置(调用百度地图API)
  14. linux时间为什么没有北京,Linux时区选择为何没有北京?
  15. 从哲学的视角看待项目生命周期——构建不一样的世界
  16. 元气骑士如何获得机器人成就皮肤_元气骑士:机器人成就皮肤该怎么获得?百场老机器人教你走位...
  17. 云服务器怎么存文件大小,云服务器怎么存文件大小
  18. Python爬网易云音乐的那些事
  19. 基于WENET制作AI字幕
  20. CC00027.kylin——|HadoopOLAP_Kylin.V27|——|Kylin.v27|Kylin构建Cube|实时OLAP.V3|

热门文章

  1. 腾讯Java一面失利,四月凭借这份offer,直接进厂
  2. CAP理论/AP架构/CP架构
  3. 多人赛跑用多线程实现
  4. S32DS Components组件配置
  5. 独立显卡安装ubuntu
  6. beyond compare linux中文包,linux 下安装 Beyond Compare
  7. 史上最通俗计算机网络分层详解,附架构师必备技术详解
  8. 规则引擎Visual Rules Solution开发基础教程【连载6】--VisualRules实例一
  9. 数字集成电路设计-5-pipelining(流水线)
  10. PL/SQL字符串Spit,Clob打印