首页 > 解决方案 > 从许多链接列表中获取具有特定模式的链接列表

问题描述

我正在使用 BeautifulSoup 并请求从网站上抓取和解析一些数据。

我已经到了一个地步,我有一个来自我正在抓取的网站的链接的输出列表,但我需要将此列表缩小到只有我需要的链接。

这是我的代码输出的照片: 在此处输入图像描述

我只需要与模式的链接/cpc/datasheet/#####

我尝试了re.findall(), re.search(),filter()和其他一些选项,但没有成功。

标签: pythonparsingweb-scrapingbeautifulsouppython-requests

解决方案


您可以使用startswith()方法检查链接是否以开头/cpc/datasheet/并将其附加到列表中:

links = [link for link in soup.find_all('a') if str(link.get('href')).startswith('/cpc/datasheet/')]

或者:

out = []
for tag in soup.find_all('a'):
    link = tag.get('href')
    if str(link).startswith('/cpc/datasheet/'):
        print(link)
        out.append(link)

推荐阅读