创建项目

scrapy startproject douyu

编写items.py

1 import scrapy
2
3 class DouyuItem(scrapy.Item):
4     nickname = scrapy.Field()
5     imagelink = scrapy.Field()
6     imagePath = scrapy.Field()

创建基础类的爬虫

scrapy genspider douyutupian capi.douyucdn.cn

手机抓包得到API接口,返回JSON格式数据

douyutupian.py

import scrapy
from douyu.items import DouyuItem
import json'''
遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!
'''
class DouyumeinvSpider(scrapy.Spider):name = "douyutupian"allowed_domains = ["capi.douyucdn.cn"]offset = 0url = "http://capi.douyucdn.cn/api/v1/getVerticalRoom?limit=20&offset="start_urls = [url + str(offset)]def parse(self, response):# 把json格式的数据转换为python格式,data段是列表data = json.loads(response.text)["data"]for each in data:item = DouyuItem()item["nickname"] = each["nickname"]item["imagelink"] = each["vertical_src"]yield itemself.offset += 20yield scrapy.Request(self.url + str(self.offset), callback = self.parse)

管道文件pipelines.py

import scrapy
from scrapy.utils.project import get_project_settings
from scrapy.pipelines.images import ImagesPipeline
import osclass ImagesPipeline(ImagesPipeline):#def process_item(self, item, spider):#    return item# 获取settings文件里设置的变量值IMAGES_STORE = get_project_settings().get("IMAGES_STORE")def get_media_requests(self, item, info):image_url = item["imagelink"]yield scrapy.Request(image_url)def item_completed(self, result, item, info):image_path = [x["path"] for ok, x in result if ok]os.rename(self.IMAGES_STORE + "/" + image_path[0], self.IMAGES_STORE + "/" + item["nickname"] + ".jpg")item["imagePath"] = self.IMAGES_STORE + "/" + item["nickname"]return item

settings.py

BOT_NAME = 'douyu'SPIDER_MODULES = ['douyu.spiders']
NEWSPIDER_MODULE = 'douyu.spiders'DEFAULT_REQUEST_HEADERS = {"User-Agent" : "DYZB/1 CFNetwork/808.2.16 Darwin/16.3.0"
}ITEM_PIPELINES = {'douyu.pipelines.ImagesPipeline': 300,
}IMAGES_STORE = "IMAGES_STORE = "../../Images"

python爬取斗鱼图片相关推荐

  1. 利用python爬虫爬取斗鱼图片(简单详细)

    关于 在一个安静的夜晚,我缓慢的打开了电脑,望着已经睡着的父母,我轻轻的把门关上,看着斗鱼颜值主播的魅力,我不尽感叹,要是每天都可以不需要那么麻烦的去看那该有多好! 于是我想起了最近刚学的爬虫,嘴角露 ...

  2. 使用scrapy框架爬取斗鱼图片

    使用scrapy框架爬取斗鱼图片 首先我们先认识一下框架 scrapy-Scrapy是Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scr ...

  3. 使用Python爬取网页图片

    使用Python爬取网页图片 李晓文 21 天前 近一段时间在学习如何使用Python进行网络爬虫,越来越觉得Python在处理爬虫问题是非常便捷的,那么接下来我就陆陆续续的将自己学习的爬虫知识分享给 ...

  4. 利用python爬取网页图片

    学习python爬取网页图片的时候,可以通过这个工具去批量下载你想要的图片 开始正题: 我从尤物网去爬取我喜欢的女神的写真照,我们这里主要用到的就两个模块 re和urllib模块,有的时候可能会用到t ...

  5. python爬取美女图片的练习

    python 爬取美女图片的练习 主要使用 xpath 定位获取 图片的链接 本次练习使用到os库 ,lmxl库 , requests库 import requests from lxml impor ...

  6. Python爬取bing图片

    我之前写过一篇Python爬取百度图片,有兴趣的朋友可以去读一下,这次写的是爬取Bing的图片. 打开Bing图片,搜索关键词,开始分析页面,可以发现bing和百度一样都是下滑自动加载,百度默认一次加 ...

  7. python爬取搜狗图片

    python爬取搜狗图片 cond(`""" 对于动态加载的网站图片的获取,我们需要去分析js内容一定要让网页发生加载后去分析,分析network 里的XHR,可以看到需 ...

  8. python爬取斗鱼当前英雄联盟主播排名

    python爬取斗鱼当前英雄联盟主播排名 代码 # 目的:爬取斗鱼英雄联盟当前主播的排名 # 找到对应网页 # 分析排名和名称相对的位置# 模拟HTTP请求,获取HTML数据 # 用正则表达式获取对应 ...

  9. PYTHON爬取斗鱼英雄联盟所有在玩adc的主播房间信息

    Python爬取斗鱼英雄联盟所有玩adc的主播房间信息并用redis存储数据 最近想要用巩固下json数据的提取以及数据的存储,于是选了斗鱼作为研究对象.. 下面就是所有要爬取的adc,当然有个别ad ...

最新文章

  1. HTML5 3D旋转图片相册
  2. recycleView 滑动删除Item,拖拽切换Item,你想了解的都在这儿
  3. static成员函数和static成员
  4. mysql 5.7 ssd_6T!阿里云MySQL 5.7 存储空间再刷新高
  5. 软件构建--项目总结
  6. 大家不要催!雷军的螺丝刀已经准备好了...
  7. javascript cookies 存、取、删除实例【转】
  8. JavaScript【面向对象】-静态方法-私有方法-公有方法-特权方法
  9. 3.13、@InitBinder 和 WebDataBinder
  10. win和linux双系统安装教程
  11. 在线全网音乐搜索下载源码
  12. 如何写一份风投喜欢的商业计划书?【转载】
  13. 桂花网蓝牙路由器Cassia X1000产品介绍
  14. web技术基础---网站设计说明书
  15. 台式计算机无线接入,台式计算机有线连接路由器WiFi方法图步骤,可以详细设置无线内容(...
  16. 轻量快速的国产导航软件Flare
  17. 苹果系统虚拟机无usb服务器,win10系统苹果电脑运行虚拟机后无法识别显示U盘的详细方案...
  18. 淘宝客CMS,微信公众号,微信淘客机器人
  19. 微信[电脑版]如何更换默认通知铃声
  20. html5制作当当图书榜页面,HTML 网页设计指南

热门文章

  1. 计算机组成与系统结构(物联网专业)
  2. python数字计算器_Python作为计算器使用(一)——数字
  3. java 堆内存结构_JAVA之内存结构
  4. Socks代理是什么意思
  5. 指纹支付 android 9,华为荣耀9支持指纹支付吗_华为荣耀9支持指纹识别吗-太平洋IT百科...
  6. 计算机桌面设备管理器,电脑设备管理器在哪里打开【图文】
  7. C语言 一球从100米高度自由落下,每次落地后反跳回原高度的一半; 再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
  8. 微软小娜 服务器连不上,windows10小娜连不上网络怎么办 win10小娜无法连接网络如何解决...
  9. (附源码)springboot校园疫情管理系统 毕业设计021506
  10. PC版QQ的“版本太旧, 无法继续使用“ 及升级后的R6030运行时错