You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

无需Selenium,用BeautifulSoup获取链接后如何继续导航下载字幕?

如何用BeautifulSoup无需Selenium导航到字幕下载链接

嘿,我看你已经搞定了搜索请求和初始页面的解析,接下来完全不用依赖Selenium,靠requests+BeautifulSoup就能完成后续的导航和字幕下载!我给你拆解一下步骤,直接补全你的代码就行:

第一步:提取搜索结果的有效链接

首先你需要从搜索页面里定位到每个字幕对应的详情页链接。以yifysubtitles的页面结构为例,搜索结果里的每个条目标题通常是带title类的<a>标签,你可以这样提取:

import requests
from bs4 import BeautifulSoup

# 添加请求头,避免被网站反爬拦截
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
}

usearch = input("Movie Name? : ")
url = "https://www.yifysubtitles.com/search?q="+usearch
print(url)

# 发送搜索请求
resp = requests.get(url, headers=headers)
soup = BeautifulSoup(resp.content, 'lxml')

# 提取搜索结果中的字幕详情页链接
subtitle_page_links = soup.find_all('a', class_='title')
base_url = "https://www.yifysubtitles.com"

第二步:循环导航到每个详情页,提取下载链接

拿到详情页链接后,我们逐个发送请求,在详情页里找到字幕的下载按钮链接,然后直接请求下载:

for link in subtitle_page_links:
    # 拼接完整的详情页URL
    full_subtitle_url = base_url + link['href']
    # 请求详情页
    subtitle_resp = requests.get(full_subtitle_url, headers=headers)
    subtitle_soup = BeautifulSoup(subtitle_resp.content, 'lxml')
    
    # 提取下载字幕的链接(这里对应页面里的下载按钮,class通常是download-subtitle)
    download_buttons = subtitle_soup.find_all('a', class_='download-subtitle')
    
    for dl_btn in download_buttons:
        # 拼接完整的下载URL
        download_url = base_url + dl_btn['href']
        # 请求下载字幕文件
        subtitle_file = requests.get(download_url, headers=headers)
        
        # 提取文件名并保存(假设下载的是zip压缩包)
        filename = dl_btn['href'].split('/')[-1] + ".zip"
        with open(filename, 'wb') as f:
            f.write(subtitle_file.content)
        
        print(f"✅ 字幕文件 {filename} 已成功下载!")

关键注意事项

  • 请求头一定要加:很多网站会拦截无标识的爬虫请求,加上User-Agent模拟浏览器访问,能大大降低被拦截的概率。
  • 页面结构可能变化:如果后续发现提取不到链接,要打开网页检查元素,确认标签和类名有没有更新,调整find_all的参数即可。
  • 为什么不用Selenium?:这个网站的页面内容都是静态渲染的,所有链接和内容都直接写在HTML里,不需要模拟浏览器的动态加载,requests完全能拿到所有数据。

内容的提问来源于stack exchange,提问作者Aakash Hirve

火山引擎 最新活动