1. items.pyclass DouyuspiderItem(scrapy.Item):

name = scrapy.Field()# 存储照⽚的名字

imagesUrls = scrapy.Field()# 照⽚的 url 路径

imagesPath = scrapy.Field()# 照⽚保存在本地的路径

2. spiders/douyu.pyimport scrapy

import json

from douyuSpider.items import DouyuspiderItem

class DouyuSpider(scrapy.Spider):

name = "douyu"

allowd_domains = ["http://capi.douyucdn.cn"]

offset = 0

url = "http://capi.douyucdn.cn/api/v1/getVerticalRoom?limit=20&

offset="

start_urls = [url + str(offset)]

def parse(self, response): # 返回从 json⾥获取 data 段数据集合

data = json.loads(response.text)["data"] # 如果 data⾥⾯没有值,那么就直接退出函数

#if not data:

# return

for each in data:

item = DouyuspiderItem()

item["name"] = each["nickname"]

item["imagesUrls"] = each["vertical_src"]

yield item

self.offset += 20

yield scrapy.Request(self.url + str(self.offset), callback =

self.parse)

3. 设置 setting.pyITEM_PIPELINES = {'douyuSpider.pipelines.ImagesPipeline': 1} # Images 的存放位置,之后会在 pipelines.py⾥调⽤

IMAGES_STORE = "/Users/Power/lesson_python/douyuSpider/Images"

# user-agent

USER_AGENT = 'DYZB/2.290 (iPhone; iOS 9.3.4; Scale/2.00)'

4. pipelines.pyimport scrapy

import os

from scrapy.pipelines.images import ImagesPipeline

from scrapy.utils.project import get_project_settings

class ImagesPipeline(ImagesPipeline):

IMAGES_STORE = get_project_settings().get("IMAGES_STORE")

def get_media_requests(self, item, info):

image_url = item["imagesUrls"]

yield scrapy.Request(image_url)

def item_completed(self, results, item, info): # 固定写法,获取图⽚路径,同时判断这个路径是否正确,如果正确,就 放 到 image_path⾥,ImagesPipeline 源码剖析可⻅

image_path = [x["path"] for ok, x in results if ok]

os.rename(self.IMAGES_STORE + "/" + image_path[0], self.IMA

GES_STORE + "/" + item["name"] + ".jpg")

item["imagesPath"] = self.IMAGES_STORE + "/" + item["name"]

return item

#get_media_requests 的作⽤就是为每⼀个图⽚链接⽣成⼀个 Request 对象,这

⽅法的输出将作为 item_completed 的输⼊中的 results,results 是⼀个元组,

每 个元组包括 (success, imageinfoorfailure) 。如果 success=true ,

imageinfo or_failure 是⼀个字典,包括 url/path/checksum 三个 key。

在项⽬根⽬录下新建 main.py⽂件,⽤于调试from scrapy import cmdline

cmdline.execute('scrapy crawl douyu'.split())

执⾏程序py2 main.py

获取完整Python爬虫视频教程请点:python网络爬虫课程。

python爬虫实战案例-Python爬虫实战案例:手机APP抓包爬虫相关推荐

  1. (实战项目一)手机App抓包爬虫

    手机App抓包爬虫 1. items.py class DouyuspiderItem(scrapy.Item):name = scrapy.Field()# 存储照片的名字imagesUrls = ...

  2. Spider爬虫--手机App抓包爬虫

    需求:手机抓包和下载图片(图片重命名) 1. 抓包工具准备 1.1 Fiddler 该软件端口默认是8888 1.2 猎豹免费WiFi: 1.3 手机设置代理服务器 使用命令ipconfig在wind ...

  3. Python:Scrapy实战项目手机App抓包爬虫

    1. items.py class DouyuspiderItem(scrapy.Item):name = scrapy.Field()# 存储照片的名字imagesUrls = scrapy.Fie ...

  4. 爬虫之手机APP抓包教程-亲测HTTP和HTTPS均可实现

    当下很多网站都有做自己的APP端产品,一个优秀的爬虫工程师,必须能够绕过难爬取点而取捷径,这是皆大欢喜的.但是在网上收罗和查阅了无数文档和资料,本人亲测无数次,均不能正常获取HTTPS数据,究其原因是 ...

  5. 爬虫——Scrapy框架案例一:手机APP抓包

    以爬取斗鱼直播上的信息为例: URL地址:http://capi.douyucdn.cn/api/v1/getVerticalRoom?limit=20&offset=0 爬取字段:房间ID. ...

  6. android 动态数据抓取,mitmproxy抓取Keep热门动态-安卓APP抓包爬虫案例

    使用mitmproxy来抓取Keep首页热门动态.鳄鱼君也是费了一天的时间去测试,在这里需要提醒大家抓包不要使用Android系统超过7.0的手机,Android系统越高手机越安全,而我们的抓包很显然 ...

  7. 使用Fiddler对手机APP抓包渗透测试实战

    朋友让帮忙投票,想着随手一测,没想到真有洞还 web端点击就提示下载手机app,不知道他是咋检测的,就下了某日报app 既然是app,首先使用 fiddler 抓取手机流量,用电脑模拟器或者手机设置代 ...

  8. 猫眼APP抓包——爬虫

    我们打开猫眼电影PC端官网,发现只有十几条评论,而绝大多数评论都是在App上,因此我们需要从App上获取评论数据. 一般地,我们要获取App数据就必须通过抓包软件进行分析,找到对应的接口,我们找到借口 ...

  9. 《Python爬虫100例》复盘⑦,解决手机APP爬虫环境问题

    文章目录 案例 41:Fiddler+夜神模拟器 案例 42:爬取儿歌多多APP数据 案例 43:百思不得姐APP数据 案例 44:Charles安装与使用 案例 45:Charles抓取兔儿故事 案 ...

最新文章

  1. [JAVA EE]ajax 方式提交数据
  2. 华为手机升级回退_华为鸿蒙OS 2.0手机开发者Beta版支持Mate 30/P40系列OTA升级
  3. pytorch生成网络WGAN-GP实例
  4. [unreal4入门系列之十一] 在UE4中编写C++代码控制角色
  5. python之装饰器初识
  6. 没有互联网,我不会写程序了
  7. python怎么读取excel-Python|读、写Excel文件(三种模块三种方式)
  8. shell脚本学习总结02--数组
  9. 跑赢业务的同时如何实现技术成长? | 凌云时刻
  10. 腾讯云最便宜的云服务器多少钱可以入坑?
  11. 墨刀未能成功读取服务器,墨刀体验小感
  12. 五款最佳VMware vSphere免费管理工具
  13. intellijnbsp;idenbsp;激活
  14. mysql回表什么意思_什么是MYSQL回表查询
  15. 奖状自定义生成(可生成多张)
  16. 企业应尽早使用BIM技术——BIM带来的优势
  17. 就算砸下1300亿造车,苹果颠覆行业也有点难
  18. 小学计算机兴趣班要教什么,小学以后,一般给孩子报几个兴趣班合适?
  19. 22.9.24 比赛
  20. 甲骨文数据库学习内容

热门文章

  1. 控制好节奏,踏实做好每件事
  2. 2018 UESTC 线段树专题
  3. KSQL和Flink SQL的比较
  4. python 基础之第四天
  5. ltrim($str);
  6. s3c6410_u-boot-2010.03移植
  7. 转一个链接:《八零后批判》作者-梁宏达
  8. python中类方法与实例方法的区别-Python实例方法、类方法、静态方法的区别与作用详解...
  9. python编程从入门到实践读书笔记-《Python编程:从入门到实践》项目部分读书笔记(二)...
  10. php和python哪个用了开发web好-web开发选择Python还是PHP好呢?