PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二手急速响应捡垃圾平台_3(附源码持续更新)
说明
文章首发于HURUWO的博客小站,本平台做同步备份发布。
如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论浏览。
原文链接 PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二手急速响应捡垃圾平台_3(附源码持续更新)直接点击即可前往访问。
整个系列文章链接
PYTHON爬虫实战:垃圾佬闲鱼爬虫、转转爬虫数据整合自用二手急速响应捡垃圾平台(附源码持续更新)-1
PYTHON爬虫实战:垃圾佬闲鱼爬虫、转转爬虫数据整合自用二手急速响应捡垃圾平台(附源码持续更新)-2
PYTHON爬虫实战:垃圾佬闲鱼爬虫、转转爬虫数据整合自用二手急速响应捡垃圾平台(附源码持续更新)-3
前言
本章内容
本章讲解关于fidder数据包转发的问题,也就是拦截了数据之后如何将想要的数据推到指定的数据库做处理。
FidderScript的说明和使用
FidderScript是什么
FidderScript是Fidder针对数据包的请求 回复 修改的脚本语言。通过使用FidderScript编写脚本插入可以完成自动化的 请求修改 转发 回复 修改操作。可以说功能非常强大,喜欢数据采集的人必学。
FidderScript的语法
官方文档: http://fiddler2.com/r/?fiddlerscriptcookbook
其实不用去看官方文档 左边的classview 已经包含了所有的api文档 看看就行
下面说几个常用的类方法:
1.Session
所有请求信息/回复信息的保存处 包括request response都可以做修改。比较核心的一个类方法对象。
2.HTTPRequestHeaders
和 HTTPResponseHeaders
headers 的映射类 在Session
提取出来可以做修改变化。
3.关于Fidder
软件本身的一些FidderApplication
类方法 比如修改UI的 按钮等 ,甚至可以定制化出来一个自动化工具。这个就不细说了,看看就知道了。
个人感觉这个语言非常类似于java,有对象有类。学习起来并不要多少成本。但是他的功能确实非常强大。
FidderScript一个简单的例子
体验一下一个脚本的完整开发过程。
进入脚本编辑器
两种办法:
方法1.
点击进入FidderScript
展开类图:点击ClassView
如果做了修改点击:Save Script
保存脚本
应用脚本
方法2.
Click Rules
> Customize Rules
Rules....Enter FiddlerScript code inside the appropriate function.
Save the file.
推荐第二种方式进入脚本编辑器
修改一下request url
跳转到指定的代码 块和方法体 点击goto 下拉框里选择点击
进入OnBeforeRequest
static function OnBeforeRequest(oSession: Session) {
......
......
......
}
所有的 request信息包含在oSession
里面
比如我们做一个 知乎转到百度的重定向
if(oSession.fullUrl.Equals("https://www.zhihu.com/"))
{
oSession.fullUrl = "https://www.baidu.com/";
}
保存运行一下:
神奇的从知乎跳转到了百度了
整个过程非常轻松。
FidderScript 转存闲鱼数据
数据转存的数据存储问题
1.存在本地还是存在云端
2.是否需要搭建一个后端系统处理数据
3.数据如何显示到页面
解决方案
存在云端本地都行,但是搭建一个后台系统非常有必要。
提供一个数据提交的接口做数据提供和数据处理的分离方案。
显示和处理在后台系统(web系统里即可) 处理出来的数据。关于后台系统的搭建后面的文章会介绍,这里假设已经搭建成功。
后台数据接收系统
数据提交接口假设为: http://127.0.0.1:8000/xianyu/
数据提交方式为 POST 数据直接提交原始数据即可,尽量把逻辑处理放在后台
先开启服务:
编写转发脚本
因为闲鱼的测试机子不在身边 暂时先用转发抖音的数据为例子
打开抖音 抓取一下橱窗的商品列表链接
https://api5-normal-c-lf.amemv.com/aweme/v1/promotion/user/promotion/list/?user_id=54512396382&sec_user_id=MS4wLjABAAAAa54-WneSWxYZ24J_00iS-9SwMQkrM3fOYK_sXDYG-lg&cursor=0&count=20&column_id=0&goods_type=0&shop_version=1&storage_type=0&manifest_version_code=110601&_rticket=1611199065509&app_type=normal&iid=17186708527928&channel=meizu&device_type=M1852&language=zh&cpu_support64=true&host_abi=armeabi-v7a&uuid=86908603665928&resolution=1080*2124&openudid=9c8e3e9910b351a8&update_version_code=11609900&cdid=a5182ee3-c5b7-44b9-830f-71ca10dd4b60&os_api=27&mac_address=D8%3A6C%3A02%3AC9%3AB5%3A58&dpi=480&ac=wifi&device_id=70532699303&mcc_mnc=46001&os_version=8.1.0&version_code=110600&app_name=aweme&version_name=11.6.0&device_brand=Meizu&ssmix=a&device_platform=android&aid=1128&ts=1611199065
脚本转发数据包 核心代码:
static function OnBeforeResponse(oSession: Session) {
if (m_Hide304s && oSession.responseCode == 304) {
oSession["ui-hide"] = "true";
}
if (oSession.fullUrl.Contains("/promotion/user/promotion/list/"))
{
oSession.utilDecodeResponse();//消除保存的请求可能存在乱码的情况
//把内容通过ajax http发送其它地方
var _xhr = new ActiveXObject('Microsoft.XMLHTTP');
var url = 'http://127.0.0.1:8000/xianyu';
//发送的数据参数
var param = oSession.GetResponseBodyAsString()
//不需要返回值所以写啦个空回调
_xhr.onreadystatechange = function() {}
_xhr.open('POST', url, true);
_xhr.setRequestHeader("Content-Type", "application/json");
_xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
_xhr.send(param);
}
}
测试数据接收
点击手机 打开橱窗
api服务器成功获得数据
总结
最后说明一下
autoResponder
仅仅只是替换返回包功能 没有修改和保存数据包的功能,以开始我跑偏了。
FidderScript
则是一个强大的工具 只有掌握了FidderScript 才能算是真正的掌握了整个Fidder这个软件。
参考文章 资料说明
Fiddler4.6.20 使用script保存请求或响应数据到本地或post到其它地方保存
本项目源码已经上传:https://github.com/HuRuWo/PickUpTrash
PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二手急速响应捡垃圾平台_3(附源码持续更新)的更多相关文章
- 13行代码实现:Python实时视频采集(附源码)
一.前言 本文是<人脸识别完整项目实战>系列博文第3部分:程序设计篇(Python版),第1节<Python实时视频采集程序设计>,本章内容系统介绍:基于Python+open ...
- Python的开源人脸识别库:离线识别率高达99.38%(附源码)
Python的开源人脸识别库:离线识别率高达99.38%(附源码) 转https://cloud.tencent.com/developer/article/1359073 11.11 智慧上云 ...
- 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码
引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...
- Java爬虫系列之实战:爬取酷狗音乐网 TOP500 的歌曲(附源码)
在前面分享的两篇随笔中分别介绍了HttpClient和Jsoup以及简单的代码案例: Java爬虫系列二:使用HttpClient抓取页面HTML Java爬虫系列三:使用Jsoup解析HTML 今天 ...
- python爬虫-淘宝商品密码(图文教程附源码)
今天闲着没事,不想像书上介绍的那样,我相信所有的数据都是有规律可以寻找的,然后去分析了一下淘宝的商品数据的规律和加密方式,用了最简单的知识去解析了需要的数据. 这个也让我学到了,解决问题的方法不止一个 ...
- Python开发中国象棋实战(附源码)
Pygame 做的中国象棋,一直以来喜欢下象棋,写了 python 就拿来做一个试试,水平有限,电脑走法水平低,需要在下次版本中更新电脑走法,希望源码能帮助大家更好的学习 python.总共分 ...
- Web爬虫|入门实战之糗事百科(附源码)
coding by real mind writing by genuine heart 解析 任务背景:https://www.qiushibaike.com/hot/ 窥探网页细节:观察每一页 ...
- Python练手项目实例汇总(附源码下载)
今天给大家分享几个有趣的Python练手项目实例,希望对Python初学者有帮助哈~ 一.经典的俄罗斯方块 1. 绑定功能 1 # 绑定功能 2 class App(Frame): 3 def _ ...
- Java豆瓣电影爬虫——小爬虫成长记(附源码)
以前也用过爬虫,比如使用nutch爬取指定种子,基于爬到的数据做搜索,还大致看过一些源码.当然,nutch对于爬虫考虑的是十分全面和细致的.每当看到屏幕上唰唰过去的爬取到的网页信息以及处理信息的时候, ...
随机推荐
- Java NIO:FileChannel数据传输
调用方式 FileChannel dstChannel; FileChannel srcChannel; dstChannel.transferFrom(srcChannel,0,srcChannel ...
- 配置OSPF与BFD联动
组网图形 OSPF与BFD联动简介 双向转发检测BFD(Bidirectional Forwarding Detection)是一种用于检测转发引擎之间通信故障的检测机制.BFD对两个系统间的.同一路 ...
- wsgi和asgi的关系
什么是WSGI #CGI CGI(Common Gateway Interface,通用网关接口),定义客户端与Web服务器的交流方式的一个程序,例如正常情况下客户端发送过来一个请求,根据HTTP协议 ...
- Python -- 修改、添加和删除元素
大多数列表将是动态的,这意味着列表创建后,将随着程序的运行增删元素. 修改列表元素 修改列表元素的语法与访问列表元素的语法类似.要修改列表元素,可指定表名和要修改的元素指引,再指定该元素的新值. #代 ...
- python的if和else语句
1.单分支选择结构: if表达式: 语句块 2.双分支结构 if表达式: 语句块1 else: 语句块2 3.多分支结构 if 表达式1: 语句块1 elif 表达式2: 语句块2 elif 表达式3 ...
- npm 各种常用命令
全局删除 node-gyp npm -g uninstall node-gyp 再次安装依赖 npm install 更改包内容后重建 npm rebuild 清除缓存 npm cache clean ...
- 2.Redis info命令详解
命令 127.0.0.1:6379> info [server|clients|memory|stats|...] # Server redis_version:5.0.4 #redis版本 r ...
- Salesforce LWC学习(三十) lwc superbadge项目实现
本篇参考:https://trailhead.salesforce.com/content/learn/superbadges/superbadge_lwc_specialist 我们做lwc的学习时 ...
- 基础才是重中之重~BouncyCastle实现的DES3加密~java通用
对于BouncyCastle类库(包)来说,他提供了很多加密算法,在与.net和java进行相互加解密过程中,得到了不错的应用,本文以DES3为例,来说一下DES3加解密的过程. 加密过程 明文字符转 ...
- stm32之定时器彻底研究
分类: C/C++ 这里介绍两种方式使用stm32的定时器:直接操作寄存器和使用st的官方的库文件. 相比较而言,直接操作定时器比较简洁,对着寄存器看十分明了.而使用库文件有一点晕头转向. (个人观点 ...