为什么写这篇文章,主要是因为看了一篇文章。
“在用Python粉碎了这些高价值的女神之后,她们突然成了生活中的赢家。”简单描述了一个工程师用Python+ADB+鹅厂AI在一个晚上关注了1000多个美女姐妹。
充分体现了大学生和工厂工人的区别。这里不得不说XX牛皮...
有一次我一个人在那个诺大工厂,想着自己的人生,想着自己该去哪里。
我记得那时候我也是靠刷刷抖嗓子度过悲惨的日子。
只是没有上面那个大哥厉害。我是一个人工识别的漂亮小姐姐...
即使现在我已经注册了鹅厂的AI账号,但是还是不能用。
那我们先从简单的开始,提前关注,然后用Python自动下载街拍视频!!!
/ 01 / Charles
用查尔斯找视频的API接口,具体操作和之前当当一样,就不细说了。
这里,视频的请求信息可以通过滑动颤音应用程序来获得。
通过多次实验发现,链接后面会不断变化,只有链接前面不变,即“http://v1-dy”、“http://v6-dy”、“http://v9-dy”不变。
因此,在编写脚本时,可以从这个信息作为链接开始。
/ 02 / mitmproxy
用mitmproxy中的mitmdump组件对接Python脚本,用Python实现监听后的处理。
这里我只是用脚本来获取链接,不直接用脚本下载视频。
因为我在mitmdump.exe文件所在的文件夹中运行脚本,所以请求模块不能导入到脚本中。
不想搞烦人的环境变量,所以只搞链接。
然后下载视频,视频链接需要复制,可能有重复的。
Python脚本如下。
defresponse(流量):
URL =[' http://v1-dy ',' http://v3-dy ',' http://v6-dy ',' http://v9-dy']
#过滤网址,只选择视频的网址
forurl inurls:
ifurl inflow.request.url:
打印(“颤音视频”)
withopen('douyin.csv ',' a+,编码='utf-8-sig') asf:
f.write(flow.request.url +' ')
/ 03 / Appium
为颤音配置Appium参数。
点击蓝色按钮,手机会自动启动颤音App!
接下来操作手机,然后点击Appium的刷新按钮,得到元素定位码。
通过这个实践,发现Appium有时候无法很好的得到元素的定位,可能就像Web端的iframe页面一样。
所以对于缺失的元素,我直接点击手机的屏幕位置。
因为手机屏幕尺寸不同,这个参数肯定会变化,所以有缺点,不能通用。
{左右滑动切换图片}
大致操作如上图。Upmaster的主页地图丢失。请自己拿定主意。Python代码如下。
importtime
importrandom
fromappium importwebdriver
from selenium . web driver . common . by import by
from selenium . web driver . support . ui importWebDriverWait
from app ium . web driver . common . touch _ action import TouchAction
from selenium . web driver . support import expected _ conditions ASec
defmain():
#设置驱动程序配置
服务器= 'http://localhost:4723/wd/hub '
desired_caps = {
平台名:“‘Android’,
设备名':' STF_AL00 ',
app PACkage ':' com . ss . Android . ugc . awe me ',
appActivity ':' . main . main activity ',
#关闭手机软键盘
“unicode键盘”:真,
“重置键盘”:真
}
driver = webdriver。远程(服务器,所需的_caps)
wait = WebDriverWait(驱动程序,60)
#同意用户隐私协议,点击
button_1 =等到(EC . presence _ of _ element _ located((By。ID,' com.ss.android.ugc.aweme:id/q6 '))
button_1 .单击()
#没有电话权限,点击
button_2 =等到(EC . presence _ of _ element _ located((By。ID,' com . Android . package installer:ID/permission _ deny _ button '))
button_2 .单击()
#禁止位置许可,点击
button_3 =等到(EC . presence _ of _ element _ located((By。ID,' com . Android . package installer:ID/permission _ deny _ button '))
button_3 .单击()
time.sleep(2)
#向上滑动进入颤音视频播放页面
触摸动作(驾驶员)。按下(x=515,y=1200)。move_to(x=515,y=1000)。释放()。执行()
#这里需要设置长延时,因为颤音有引导操作和提示,所以需要等一会儿。
睡眠时间(20)
#点击颤音的“喜欢”部分进入登录界面
触摸动作(驾驶员)。按压(x=950,y=800)。释放()。执行()
#单击密码登录
button_4 =等到(EC . presence _ of _ element _ located((By。ID,' com . ss . Android . ugc . awe me:ID/afg '))
button_4 .单击()
#输入账号
button_5 =等到(EC . presence _ of _ element _ located((By。ID,' com . ss . Android . ugc . awe me:ID/ab _ '))
Button_5.send_keys('您的帐号')
#输入密码
button_6 =等到(EC . presence _ of _ element _ located((By。ID,' com . ss . Android . ugc . awe me:ID/AES '))
Button _ 6.send _ keys('您的密码')
time.sleep(2)
#因为会跳出软键盘,挡住登录按钮,点击软键盘取消
触摸动作(驾驶员)。按下(x=980,y=1850)。释放()。执行()
time.sleep(2)
#单击登录按钮
button_7 =等到(EC . presence _ of _ element _ located((By。ID,' com . ss . Android . ugc . awe me:ID/abb '))
button_7 .单击()
time.sleep(2)
触摸动作(驾驶员)。按下(x=990,y=1850)。释放()。执行()
button_8 =等到(EC . presence _ of _ element _ located((By。ID,' com . ss . Android . ugc . awe me:ID/a _ 7 '))
button_8 .单击()
button_9 =等到(EC . presence _ of _ element _ located((By。XPATH,'/hierarchy/Android . Widget . FrameLayout/Android . Widget . LinearLayout/Android . Widget . RelativeLayout/Android . Widget . LinearLayout/Android . Widget . FrameLayout/Android . view . ViewGrouP/Android . Widget . LinearLayout/Android . support . V7 . Widget . RecycerView/Android . Widget . RelativeLayout[2]/Android . Widget . RelativeLayout[1]'))
button_9 .单击()
#转到上行主页,点击第一个视频
button_10 =等到(EC . presence _ of _ element _ located((By。ID,' com . ss . Android . ugc . awe me:ID/AQM '))
button_10.click()
#继续向下滑动到页面底部
同时:
触摸动作(驾驶员)。按(x=515,y=1247)。move_to(x=515,y=1026)。释放()。执行()
time . sleep(float(random . randint(5,10)))
if__name__ == '__main__ ':
main()
要下载视频代码,需要复制视频链接。
进口熊猫aspd
导入请求
importos
num = 0
dom = []
folder_path = "F:/video/"
os.makedirs(folder_path)
df = pd.read_csv('douyin.csv ',header=None,name =[" URL "])
#复制链接并删除刚刚进入颤音采集的视频链接
fori indf['url'][2:]:
ifi notindom:
dom.append(i)
#下载视频
forj indom:
url = j
num += 1
响应=请求。获取(网址,流=真)
filename = str(num)+. MP4
带open('F:video'+ filename,' ab+') asf:
f.write(response.content)
f.flush()
打印(文件名+“下载完成”)
最后,我成功地获得了我姐姐们的所有视频...
如果我在工厂,知道怎么操作就好了,哈哈。
其实我想的更多。大部分女生喜欢拍颤音,但不要下载这种操作。
然后,给弟弟们一个机会,下载他们喜欢的姐妹的颤音视频。
然后编辑一个“最美时刻”系列的视频,机会就来了...
/04/摘要
代码放在“GitHub”上。https://github.com/Tobby-star/douyin
[本文作者]
Fa nast: Python爱好者,专注爬虫,数据分析,可视化
1.《下栽抖音 用 Python 全自动下载抖音小姐姐视频》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《下栽抖音 用 Python 全自动下载抖音小姐姐视频》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/shehui/1037598.html