Open loveqianool opened 1 year ago
我记得我看过这个格式的链接的问题,不仅仅是 user-agent 那么简单,里面好像还有一些需要在浏览器环境中执行的秘密流程。 总之靠代码实现没有那么简单,需要其他路过的大佬的协助!
目前我是这么实现的 v.douyin的转换 from flask import Flask, render_template, request from selenium import webdriver from selenium.webdriver.firefox.options import Options from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By import requests import re import time
app = Flask(name)
@app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST':
text = request.form['text']
# 提取链接
link = extract_link(text)
if link:
print("extract_link:", link)
# 使用 Selenium 访问链接并获取最终的 URL
final_url = get_final_url(link)
print("final_url:", final_url)
# 发送最终 URL 到指定的 API 接口
#api_url = 'http://192.168.10.100:8787/api/lives'
api_url = 'http://192.168.10.100:8788/api/lives'
data = [{'url': final_url, 'listen': True}]
response = requests.post(api_url, json=data)
print(data)
print("Response Status Code:", response.status_code)
print(response.text.encode('utf-8'))
return response.text.encode('utf-8')
else:
print("err")
# 渲染 HTML 模板,显示表单页面
return render_template('index.html')
def extract_link(text):
pattern = r'https://[^\s]+'
match = re.search(pattern, text)
if match:
link = match.group()
return link
else:
return None
def get_final_url(url):
gecko_driver_path = './geckodriver'
# 设置 Firefox 选项
firefox_options = Options()
firefox_options.headless = True # 无头模式,不显示浏览器界面
# 创建 Firefox 驱动
driver = webdriver.Firefox(executable_path=gecko_driver_path, options=firefox_options)
# 打开链接
driver.get(url)
# 等待页面加载完成,最长等待时间设置为10秒
wait = WebDriverWait(driver, 10)
time.sleep(30)
# 获取当前页面的 URL
final_url = driver.current_url
#print("Final URL:", final_url)
# 关闭浏览器驱动
driver.quit()
return final_url
if name == 'main':
app.run(host='0.0.0.0', port=5000)
你这里用到了 selenium,对单纯的 golang 程序来说,这不太现实。。
目标网站任意直播间的示例 url,精确到具体直播间
https://v.douyin.com/iEqQwcx
列举其他已支持上述网站的开源工具
暂未发现
自由描述
https://v.douyin.com/iEqQwcx >> https://webcast.amemv.com/douyin/webcast/reflow/7261563736028728116 >> https://live.douyin.com/887137105722 手机端复制链接都是 v.douyin.com,而目前手机端打开只能跳转到 webcast.amemv.com,需要模拟 PC 端 User-agent 才能复制到能录制的链接,这导致在手机端进行录制操作繁琐。