使用BeautifulSoup提取div中指定下载链接及_2qbpz类补充信息
解决方法
你可以通过关联下载链接与对应文件名的公共父容器,同时提取两个信息,修改后的完整代码如下:
import requests from bs4 import BeautifulSoup URL = "https://figshare.com/articles/dataset/Multi-channel_EEG_recordings_during_a_sustained-attention_driving_task_preprocessed_dataset_/7666055/3" page = requests.get(URL) soup = BeautifulSoup(page.content, "html.parser") for link in soup.find_all('a', href=True): download_url = link['href'] if 'https://figshare.com/ndownloader/files' in download_url: # 向上查找公共父容器 parent_container = link.parent.parent # 提取文件名信息 file_name_tag = parent_container.find('span', class_='_2qbpz') file_name = file_name_tag.text.strip() if file_name_tag else "未获取到文件名" # 输出结果 print(f"文件名:{file_name},下载链接:{download_url}")
实现逻辑
- 你提供的HTML结构中,每个下载链接和对应文件名都包裹在同一个
class="_2bEHu"的父容器内 - 找到符合条件的下载链接后,向上追溯两层父元素即可定位到公共容器
- 查找容器内
class="_2qbpz"的span元素就能拿到对应的补充信息,额外加了空判断避免部分节点异常导致报错
内容的提问来源于stack exchange,提问作者rpb
相关产品推荐
相关产品推荐

