import requestsfrom bs4 import BeautifulSoup# 定义目标网页的URLurl = httpswww1819yscommovie45620-0-0html# 发起HTTP请求headers = user-agent Mozilla50 Windows NT 100; Win64; x64 AppleWebKit53736 KHTML like Gec
上述代码没有下载视频和音频的原因是网页中的视频和音频链接可能是通过JavaScript动态加载的,而requests库只能获取静态的HTML内容,无法执行JavaScript。
如果要下载动态加载的视频和音频文件,可以使用Selenium库来模拟浏览器的行为,从而获取到完整的页面内容,包括动态加载的视频和音频链接。
以下是使用Selenium库修改后的代码示例:
import time
from selenium import webdriver
# 定义目标网页的URL
url = "https://www.1819ys.com/movie/45620-0-0.html"
# 使用Selenium打开网页
driver = webdriver.Chrome("path/to/chromedriver") # 需要提前下载并指定chromedriver的路径
driver.get(url)
# 等待网页加载完成
time.sleep(5)
# 解析网页内容
soup = BeautifulSoup(driver.page_source, "html.parser")
# 找到所有视频和音频的链接
video_links = soup.select('a[href$=".mp4"]')
audio_links = soup.select('a[href$=".mp3"]')
# 下载视频和音频文件
for link in video_links:
video_url = link["href"]
video_title = link.text
video_response = requests.get(video_url)
with open(f"{video_title}.mp4", "wb") as f:
f.write(video_response.content)
for link in audio_links:
audio_url = link["href"]
audio_title = link.text
audio_response = requests.get(audio_url)
with open(f"{audio_title}.mp3", "wb") as f:
f.write(audio_response.content)
# 关闭浏览器
driver.quit()
注意:上述代码需要安装Selenium库和Chrome浏览器,并下载对应版本的chromedriver驱动程序。在代码中需要指定chromedriver的路径。另外,为了确保网页加载完成,使用了time.sleep(5)来等待5秒钟,可以根据实际情况进行调整。
原文地址: https://www.cveoy.top/t/topic/ieE1 著作权归作者所有。请勿转载和采集!