手机App抓包爬虫

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

(实战项目一)手机App抓包爬虫相关推荐

  1. python爬虫实战案例-Python爬虫实战案例:手机APP抓包爬虫

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

  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抓包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. 一篇文章让你读懂Pivotal的GemFire家族产品
  2. 使用TinySpider实战抓取自己博客中的内容
  3. CNDO-INTGRL-SS-BINTGS-斯莱特轨道指数--- 精确方法
  4. 为什么机器人发展了几十年感觉还是没太大进展
  5. 类数组arguments
  6. C# 操作FireBird 附源码
  7. Swift学习笔记 闭包表达式
  8. 【LeetCode】面试题 03. 数组中重复的数字
  9. java jbutton 不显示_java让JButton按钮变成不可见
  10. 用JS做关灯游戏(初级)
  11. html仿酷狗音乐界面代码,模仿酷狗7(Kugou7)音乐魔方界面源码
  12. 考试倒计时,计算机二级重难点汇总【39套历年考题】
  13. ARP欺骗+DNS欺骗
  14. Activity工作流
  15. 安卓源码目录最全解析
  16. lighttpd和php关系,Lighttpd是什么
  17. usb热插拔多次之后无法识别
  18. 反馈对于用户体验的重要性
  19. android 电池检测软件,AccuBattery手机电池损耗检测软件
  20. 各种颜色对应的RGB值

热门文章

  1. mysql 查询优化 ~ 多表查询基础知识
  2. ISAKMP:(1006):deleting node 1202729771 error TRUE reason Delete Larval
  3. unix c线程同步的三种方法:互斥量、读写锁以及条件变-xhb8413-ChinaUnix博客
  4. C下的全局变量和指针 - C/C++ / C语言
  5. LINUX考证优惠信息转发(图)
  6. windowXP 任务计划无法启动 错误代码:0X80041315
  7. extjs 中登录保存用户名
  8. 面试官系统精讲Java源码及大厂真题 - 17 并发 List、Map源码面试题
  9. 虚拟机网络连接三种方式(桥接、NAT、主机)
  10. ofbiz mysql_ofbiz+mysql安装求教