1. items.py

class DouyuspiderItem(scrapy.Item):name = scrapy.Field()# 存储照片的名字imagesUrls = scrapy.Field()# 照片的url路径imagesPath = scrapy.Field()# 照片保存在本地的路径

2. spiders/douyu.py

import scrapy
import json
from douyuSpider.items import DouyuspiderItemclass DouyuSpider(scrapy.Spider):name = "douyu"allowd_domains = ["http://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里获取 data段数据集合data = json.loads(response.text)["data"]for each in data:item = DouyuspiderItem()item["name"] = each["nickname"]item["imagesUrls"] = each["vertical_src"]yield itemself.offset += 20yield scrapy.Request(self.url + str(self.offset), callback = self.parse)

3. 设置setting.py


ITEM_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.py

import scrapy
import os
from scrapy.pipelines.images import ImagesPipeline
from scrapy.utils.project import get_project_settingsclass 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.IMAGES_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,imageinfoor_failure是一个字典,包括url/path/checksum三个key。

在项目根目录下新建main.py文件,用于调试

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

执行程序

py2 main.py

Python:Scrapy实战项目手机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爬虫实战案例-Python爬虫实战案例:手机APP抓包爬虫

    1. items.pyclass DouyuspiderItem(scrapy.Item): name = scrapy.Field()# 存储照⽚的名字 imagesUrls = scrapy.Fi ...

  4. 常用工具(一)——安卓手机app抓包burpsuite

    手机app抓包 工具:burpsuite 前提条件 1.保证手机与电脑在同一个无线局域网下 2.找到手机网络位置>打开详情>打开代理选择手动>主机名设为电脑IP(如图) 3.burp ...

  5. 使用Fiddler对手机APP抓包详细教程

    使用Fiddler对手机APP抓包详细教程 在实现用Fiddler对手机APP抓包过程中遇到了两个很棘手的问题,一个是设置代理后手机就上不了网,在手机上下载证书一直提示下载失败,第二个就是在fiddl ...

  6. Fiddler 网页采集抓包利器__手机app抓包

    用curl技术开发了一个微信文章聚合类产品,把抓取到的数据转换成json格式,并在android端调用json数据接口加以显示: 基于weiphp做了一个掌上头条插件,也是用的网页采集技术:和一个创业 ...

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

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

  8. 手机APP抓包问题总结及相关解决方案

    App抓包问题总结及相关解决方案 文章目录 App抓包问题总结及相关解决方案 前言 1 抓包工具的选择 2 常见问题解决 2.1 App正常运行,但是抓包工具中没有对应的请求记录 2.1.1 非HTT ...

  9. 使用Fiddler实现手机APP抓包

    手机上无法直接查看网络请求数据,需要使用抓包工具.Fiddler是一个免费的web调试代理,可以用它实现记录.查看和调试手机终端和远程服务器之间的http/https通信. fiddler没有手机客户 ...

最新文章

  1. 2021-03-28为什么用SCALA语言优势在哪里 Scala适合服务端、大数据、数据挖掘、NLP、图像识别、机器学习、深度学习…等等开发。
  2. 普通(实例)方法和实例方法的定义和调用
  3. django mysql 2006_Django (2006, 'MySQL server has gone away') 本地重现与解决
  4. Codeforces Round #623 (Div. 2, based on VK Cup 2019-2020 - Elimination Round, Engine) A Dead Pixel
  5. 会议会展活动从业技能之会销流程的16个环节
  6. 链表题目----5 相交链表 和 环形链表 和 返回链表开始入环的第一个节点
  7. 已跳过全部重新生成_2020年最新跳对公技术1+5,1+10,5+50(必读)
  8. redhat下升级gcc编译器
  9. 从腾讯入职到离职,我仅用了三周:做大数据的同事看不起做报表的
  10. DB2 SQLCODE: -407, SQLSTATE: 23502
  11. fast虚拟服务器ip地址设置,falogin.cn fast怎样正确设置电脑的IP地址和DNS等参数? - falogincn登录页面...
  12. 计算机网络研修培训总结,计算机培训工作总结(共10篇).doc
  13. eclipse jee 和 myeclipse web项目的转换
  14. Maven scope中import的作用
  15. yum源配置的三种方法
  16. 腾讯云域名转出转移码申请及转入阿里云全流程(图解)
  17. 摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文 名“GPU编程与CG语言之阳春白雪下里巴人”
  18. 关于φ与Φ函数与序列中分数个数的讨论
  19. PLC的面向对象编程
  20. 公司合伙人股权的进入和退出机制

热门文章

  1. mysql5.6.46安装教程_鲲鹏云-arm平台 mysql-5.6.46 安装
  2. 如何判断飞机的年限_技术流带你鉴定前风挡玻璃更换,不再使用日期判断!
  3. 使用python建立简单的树机构
  4. 群论中的拉格朗日定理(子群的阶必然能整除群阶---数学
  5. 《Attention is All You Need》浅读(简介+代码)
  6. Pytorch的LSTM的理解
  7. LeetCode简单题之最常见的单词
  8. NNVM AI框架编译器
  9. 黎曼曲面Riemann Surface
  10. 客快物流大数据项目(六):Docker与虚拟机的形象比喻及组件介绍