抖音爬虫
一直想给博客换个
f12 手机模式打开,复制的链接输入到浏览器中,network搜索?item
发现?item_ids=的值与url的值是一样的。
复制打开第二章图片的request url,是一个json的文件
获取play_addr,其实后面的url_list打开就是视频。

主要还是看代码
搜索?item
from urllib.parse import urlparse #爬虫库的一个模块urlparse
import requests #
import re #
headers = {
"user-agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
} #请求头
print("===>欢迎使用抖音视频去水印提取工具")
print("===>请输入抖音链接中的短链接(eg:https://v.douyin.com/sLvq6P/)")
input_url = input("===>")
#定义了一个函数,用正则去匹配。
preurl = re.findall(r'(?<=douyin.com\/)\w+\/', input_url, re.I | re.M)
#拼接能访问的url
url = "https://v.douyin.com/" + preurl[0]
#去请求访问上面拼接的url
get = requests.get(url, headers=headers)
html = get.content
req= get.url
url = req
parse = urlparse(url) #urlparse模块
itemid = parse.path #定义itemid的path数组,这里的itemid是上面?item_ids的值
itemids = (itemid[13:32]) #取这个数组里面的13到32的字符串
#拼接新的url
videourl = "https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=" + itemids
print(videourl)
videoopen = requests.get(videourl, headers=headers)
vhtml = videoopen.text
#正则json网站里面的uri的值
uri = re.findall(r'(?<=\"uri\":\")\w{32}(?=\")', str(vhtml))
print(uri[0])
#组成去水印的url
play_addr = "https://aweme.snssdk.com/aweme/v1/play/?video_id=" + uri[0] + \
"&ratio=720p&line=0"
print("===>复制下面的长链接到手机浏览器打开即可得到无水印视频\n===>" + play_addr)
name = input("===>正在下载保存视频,请输入视频名称:")
video = requests.get(url=play_addr, headers=headers)
with open(name + ".mp4", 'wb')as file:
file.write(video.content)
file.close()
print("===>视频下载完成!")
input("===>press enter key to exit!")
快手
f12 手机模式打开,network搜索upic,快手直接搜索upic在返回里面找一下就能直接找到了。
bibilili
b站的更简单,f12 手机模式打开,network搜索MP4就能找到视频地址。