-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
因为训练需要数据,数据在某个app上。所以开始进行爬虫工作,主要分下面几步:
抓请求
抓请求无非就是使用fiddler ,让手机和电脑连接同一个局域网开始抓包。
抓包分析
因为是app,某些请求是加密的,后来我发现这个加密方式在页面上有个js的库是负责的,但是我用了一个复杂的方式使用,使用了apk反编译,注意生成的可能没有dex文件,运行命令需要一个参数,见知乎
模拟请求
看懂了反编译的代码,知道加密怎么办到,准备用python重写,但是奈何python的加密不是很熟,也就作罢,直接运行反编译的java代码,这也给后面部署带来了麻烦。
写代码
只要把请求放到postman上,基本的爬虫代码是不用手动撰写,复制过来改改参数就好了。
数据库
这里爬虫使用了一个MapReduce的结构,数据是从redis拉下来的,具体怎么操作看印象笔记。mongo操作redis操作都很简单。
注意这种json结构的数据的key值应该都是一样的,不然之后遍历检索都很困难。
mongo有可视化工具很方便
mongodb和redis可以直接使用docker部署,也很方便。
反爬策略
遭遇到封ip、封账号。封ip解决办法。使用代理解决
sslocal -c json
sudo polipo socksParentProxy=localhost:1080 proxyPort=1087
request(proxy={}) # 具体看代码
todo
整个项目使用docker部署,一个部署自己带上一个数据库,这样就没有太大瓶颈。
Metadata
Metadata
Assignees
Labels
No labels