爬取旧账号关注数据
注意:关注页面信息属于二次请求,需要用到抓包工具。
import requests
cookie1 = [
"这里的cookie要从抓取到的请求头中自己获取"
]
headers = {
"cookie": cookies1,
"referer": ",
"user-agent": ",
}
url = ")
resp = requests.get(url, headers=headers)
data=resp.json()['followings']
for i in range(20):
print(data[i]['nickname']) # 关注信息保存在nickname中
resp.close()
分析
关注页信息是二次请求得来的,但它不会立即全部加载,会以每次请求20条数据的状态加载,因此若关注了50个博主,则后台会分三次请求,来获取数据。
且每次获取数据请求的url都不同(cookie可以一直用同一个),因此想要获取全部数据,则需要分多次进行爬取,每次爬取仅需要修改上方代码中的url。
编写自动化脚本,实现自动关注
本案例使用 pro版本7.0.4。
注意:打开无障碍功能
//打开
launch("com.ss.android.ugc.aweme");
sleep(3000)
搜索按钮=id("com.ss.android.ugc.aweme:id/hz9").findOne()
bb(搜索按钮)
//将点击操作封装为函数
function bb(k){
点击=k.bounds()
click(点击.centerX(),点击.centerY())
}
function aa(i){
id("com.ss.android.ugc.aweme:id/et_search_kw").findOne().setText(i)
搜索框=text("搜索").findOne()
bb(搜索框)
sleep(1500)
// 关注=text("关注按钮").findOne(1500)
var w=text("关注按钮").findOne(1500);
//如果找到控件则点击
if(w != null){
bb(w)
}else{
var u=text("已关注按钮").findOne(200);
//如果找到控件则点击
if(u != null){
log(i+"——已关注")
}else{
log(i+"——不存在")
}
}
}
// aa("小乃丸")
// aa("一片枫叶")
// aa("王小怪")
//此代码也许本地机无法运行,尝试开启root权限,或使用虚拟机测试
datas=files.read("/sdcard/脚本/abc.txt")
sz=datas.split("\n")
// log(sz.length)
sz.forEach(myFunction);
function myFunction(value) {
sleep(500)
aa(value)
}
toastLog("111111111")
最后,将此脚本打包为应用,即可正常运行。
注:abc.txt为关注列表文件