实战:带你用Python爬取抖音app视频
![](https://filescdn.proginn.com/f47df7bf783785d8dbbfd200bb9e7710/bc2497489f6ccea645e234f5fd0db941.webp)
![](https://filescdn.proginn.com/ce7108acf7dfa71832b7f2468d9ffdb7/808e10af02766b1056376fcecedcf8fb.webp)
![](https://filescdn.proginn.com/b38fa3d13370bfc803a5758ac9e7876b/812a3108a47eac642925f861b4f8eb70.webp)
http://v1-dy.ixigua.com/;http://v3-dy.ixigua.com/;http://v9-dy.ixigua.com/
import requests
# 文件路径
path = 'D:/video/'
num = 1788
def response(flow):
global num
# 经测试发现视频url前缀主要是3个
target_urls = ['http://v1-dy.ixigua.com/', 'http://v9-dy.ixigua.com/',
'http://v3-dy.ixigua.com/']
for url in target_urls:
# 过滤掉不需要的url
if flow.request.url.startswith(url):
# 设置视频名
filename = path + str(num) + '.mp4'
# 使用request获取视频url的内容
# stream=True作用是推迟下载响应体直到访问Response.content属性
res = requests.get(flow.request.url, stream=True)
# 将视频写入文件夹
with open(filename, 'ab') as f:
f.write(res.content)
f.flush()
print(filename + '下载完成')
num += 1
![](https://filescdn.proginn.com/1e3395e8bc5d4208e24383acd1d2fc20/1ab6ff5e9cb20bf0d3596e8cb77a9e8b.webp)
![](https://filescdn.proginn.com/87a1513a1753ffa871e3a9f79c2804b3/7d0e70f9adfaecf63d466ea4594d1597.webp)
![](https://filescdn.proginn.com/7bf71aa096e8db523639701beff2db85/bc3f1a5f0b12039c310bcb62cf2a0b34.webp)
![](https://filescdn.proginn.com/9731cf18e4f97f23393ca27b3930c8ae/750616603ef588caf0b6c899b32c95a1.webp)
![](https://filescdn.proginn.com/d7b40f82dbe6bed52ecf8af2922af01c/d4c6dfca55f0cca0b306e9b772412c9c.webp)
![](https://filescdn.proginn.com/765d14a5e574d9bede463d1acd2426cf/31679715d0eeb99030cef4164f944712.webp)
![](https://filescdn.proginn.com/af484f259a370548a8b80cc70119e4a3/9da5b8116e9554ccc7ea878e74460ad3.webp)
{
"platformName": "Android",
"deviceName": "Mi_Note_3",
"appPackage": "com.ss.android.ugc.aweme",
"appActivity": ".main.MainActivity"
}
![](https://filescdn.proginn.com/108fa843e889df3bfdfd6bba412ae2b5/a01579998260844e874a592e0721f9b2.webp)
from appium import webdriver
from time import sleep
class Action():
def __init__(self):
# 初始化配置,设置Desired Capabilities参数
self.desired_caps = {
"platformName": "Android",
"deviceName": "Mi_Note_3",
"appPackage": "com.ss.android.ugc.aweme",
"appActivity": ".main.MainActivity"
}
# 指定Appium Server
self.server = 'http://localhost:4723/wd/hub'
# 新建一个Session
self.driver = webdriver.Remote(self.server, self.desired_caps)
# 设置滑动初始坐标和滑动距离
self.start_x = 500
self.start_y = 1500
self.distance = 1300
def comments(self):
sleep(2)
# app开启之后点击一次屏幕,确保页面的展示
self.driver.tap([(500, 1200)], 500)
def scroll(self):
# 无限滑动
while True:
# 模拟滑动
self.driver.swipe(self.start_x, self.start_y, self.start_x,
self.start_y-self.distance)
# 设置延时等待
sleep(2)
def main(self):
self.comments()
self.scroll()
if __name__ == '__main__':
action = Action()
action.main()
![](https://filescdn.proginn.com/70de67b0d761cef2f99e800916d4eb33/1b590739c84d23e9d9c579a4b8c6fc6d.webp)
![](https://filescdn.proginn.com/ec74c8db9592df7f9e42a4b44ea142c1/ec68ed303ed944b2b55c1eeef9e1537f.webp)
原文链接:https://urlify.cn/ANzAre
文章转载:Python编程学习圈
(版权归原作者所有,侵删)
![](https://filescdn.proginn.com/162b31235c61a71a3233812f541cf08e/e39ef1622ef6f7f864646069b952dec3.webp)
![](https://filescdn.proginn.com/0438bfd5a97765c6724eca59456f4146/c6ab398339bcbbf5aa34e0eb044063aa.webp)
点击下方“阅读原文”查看更多
评论