Python爬虫:scrapy爬取斗鱼直播图片
通过斗鱼给出的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爬取斗鱼直播图片相关推荐
- 【Python爬虫】爬取斗鱼直播信息(Fiddler抓包分析)
大年初七了还不开始学习嘛? 过年期间一直再在看斗鱼直播平台的直播,学习主播的操作(骚套路)想着等有机会也来实战一波.看着看着就很想分析一下到底哪些主播观看的人数比较多,又为啥会有这么多人看.所以我们就 ...
- Python爬虫 - scrapy - 爬取妹子图 Lv1
0. 前言 这是一个利用python scrapy框架爬取网站图片的实例,本人也是在学习当中,在这做个记录,也希望能帮到需要的人.爬取妹子图的实例打算分成三部分来写,尝试完善实用性. 系统环境 Sys ...
- 使用scrapy爬取斗鱼直播间信息
目录 1. 谷歌抓包工具的使用 1.1 打开Chrome开发者工具的方法 1.2 开发者工具的结构 1.3 network模块 2. 使用谷歌抓包工具抓取斗鱼数据 3. 使用scrapy爬取斗鱼直播间 ...
- python爬虫:爬取所有车标图片保存本地
python爬虫:爬取所有车标图片保存本地 这次没想到会这么轻松,找了几个网站分析结构发现腾讯汽车的json接口,很轻松爬下所有的图标.上图: 总共209个牌子,以车牌子命名. 分析网页 一开始找了好 ...
- python爬虫scrapy爬取新闻标题及链接_python爬虫框架scrapy爬取梅花网资讯信息
原标题:python爬虫框架scrapy爬取梅花网资讯信息 一.介绍 本例子用scrapy-splash爬取梅花网(http://www.meihua.info/a/list/today)的资讯信息, ...
- Python爬虫入门——爬取贴吧图片
最近忽然想听一首老歌,"I believe" 于是到网上去搜,把几乎所有的版本的MV都看了一遍(也是够无聊的),最喜欢的还是最初版的<我的野蛮女友>电影主题曲的哪个版本 ...
- python协程爬取斗鱼美女图片
分析网站寻找需要的网址 用谷歌浏览器摁F12打开开发者工具,然后打开斗鱼颜值分类的页面,如图: 在里面的请求中,最后发现它是以ajax加载的数据,数据格式为json,如图: 圈住的部分是我们需要的数据 ...
- python爬虫scrapy爬取新闻标题及链接_18Python爬虫---CrawlSpider自动爬取新浪新闻网页标题和链接...
一.爬取新浪新闻思路 1.创建scrapy项目 2.分析新浪新闻网站静态页面代码 3.编写对应的xpath公式 4.写代码 二.项目代码 步骤1.创建scrapy项目 scrapy startproj ...
- Python爬虫 --- Scrapy爬取IT桔子网
转载自 成长之路丶关注@简书 目标: 此次爬取主要是针对IT桔子网的事件信息模块,然后把爬取的数据存储到mysql数据库中. 目标分析: 通过浏览器浏览发现事件模块需要登录才能访问,因此我们需要先 ...
最新文章
- 收藏 | 机器学习数据集汇总收集
- php 获取key的位置,PHP使用腾讯地图获取指定地址坐标:创建key(图文+视频)
- 您的第一个简单的机器学习项目
- php mysql xa事务_XA mysql php 分布式事务
- python float_Python float()
- Java基础---Java---网络编程---TCP、UDP、UDP-键盘录入方式数据、Socket、TCP复制文件、UDP-聊天
- WebCollector 网页正文快速提取
- Spring 常见注解原理和自定义@interface注解
- c++播放音频( c++ play audio),为C++应用程序添加启动音效
- 小程序车型品牌车系三级选择(地区也一样)
- 非技术类:分享蓝牙音频接收器转音箱的使用
- Excel最强玩法!用Excel做“动态日历表”,让你的好记性更牢固!
- java通过经纬度查询位置(调用百度地图API)
- linux时间为什么没有北京,Linux时区选择为何没有北京?
- 从哲学的视角看待项目生命周期——构建不一样的世界
- 元气骑士如何获得机器人成就皮肤_元气骑士:机器人成就皮肤该怎么获得?百场老机器人教你走位...
- 云服务器怎么存文件大小,云服务器怎么存文件大小
- Python爬网易云音乐的那些事
- 基于WENET制作AI字幕
- CC00027.kylin——|HadoopOLAP_Kylin.V27|——|Kylin.v27|Kylin构建Cube|实时OLAP.V3|