抖⾳商品信息爬⾍
catch的音标⼀、爬取⽬标
我们的爬取⽬标是App内商品板块内的商品公开信息。我们要把商品的产地、价格以及销量爬取下来。
⼆、思路
1.Fiddler抓包
2.mimtproxy(mimtdump)抓包
3.python提取数据
4.存⼊MongoDB数据库
三、准备⼯作
(1)、安卓模拟器(或⼀部⼿机)配置
1、⼿机需开启root权限(有变砖风险),root后配置⽅法与模拟器相同
2、模拟器
安装完成后打开夜神多开器创建⼀个安卓5的模拟器(安卓7安装Xposed框架会开机会卡在99%进不去系统)进⼊模拟器(ROOT⼀般默认为开)下载并安装Xposed框架-下载并安装JustTrustMe模块
打开设置,设置代理
IP地址为主机IP地址,端⼝号要与下⽂设置的Fiddler端⼝号⼀致。
(2)、Fiddler。
成功安装后,设置如下图所⽰ :
设置完成后重启⼀下Fiddler就好啦。
(3)、mitmproxy
直接命令⾏pip install mitmproxy即可
四、抓取分析
使⽤模拟器打开抖⾳APP搜索商品就可以看到Fidder抓到的包了
可以看到我们的Fiddler为我们抓到了很多的数据包,那怎么到我们想要的数据呢?最笨的办法就是⼀条⼀条的点开的看,在这⾥要推荐⼀个⽐较快捷的⽅法,看body列的数据⼤⼩分辨。查看可疑的请求,我们点击JSON看⼀下,可以看到,这正是我们想要的商品数据。五、数据抓取
由于抓到的包只有少量才是我们需要的包,那么接下来我们就需要对接⼝做过滤限制,抓取如上分析的接⼝,再提取结果中的对应字段。
import json
from mitmproxy import ctx
def response(flow):
url = 'aweme.snssdk/aweme/v2/shop/search/aggregate/shopping/'
quest.url.startswith(url):
text =
data = json.loads(text)verticalalignment stretch
items = ('items')
for item in items:
product_info = ('product_info')
print(product_info)
ctx.log.info(str(product_info))
接下来运⾏mitmdump,命令如下所⽰(如果端⼝与Fiddler设置相同,需要先关闭Fiddler):
mitdump -p 8888 -s script.py
现在输出了商品的全部信息,⼀条信息对应⼀条JSON格式的数据。
六、提取保存
接下来我们需要提取信息,再把信息保存到数据库中。⽅便起见,在这⾥选择MongoDB数据库。爬虫软件 app
import json
phpstorm打包项目from mitmproxy import ctx
import pymongo
client = pymongo.MongoClient('localhost')
db = client['douyin']
collection = db['fruit']
def response(flow):
url = 'aweme.snssdk/aweme/v2/shop/search/aggregate/shopping/'
quest.url.startswith(url):
text =
data = json.loads(text)
items = ('items')
for item in items:
product_info = ('product_info')
data = {
"name": ('name'),
"show_price": ('show_price')/100,
"extra_info": ('extra_info')
}
命名实体提取开源java
ctx.log.info(str(data))
flash播放器手机collection.insert(data)
滑动⼏页,发现所有商品信息都被保存到MongoDB中。
⽬前为⽌,我们利⽤⼀个⾮常简单的脚本把“抖⾳”App的商品信息保存下来。
七、结语
本⽂章内容就到此了,想要实现⾃动化获取数据,加个Appium就可以啦。
第⼀次写博客,请⼤佬们多多请教。
觉得有⽤的点个赞吧(OWO)~~~~~~
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论