You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从SCP维基爬虫获取的href标签中提取URL后缀?

解决SCP维基爬虫提取文章链接的问题

直接修改初始代码提取href(最优方案)

你当前用find_all获取的是完整<a>标签对象,无需后续二次提取,直接在获取阶段就提取href属性即可,修改代码如下:

import requests
import lxml
from bs4 import BeautifulSoup
import re

def searchSCP(x):
    url = str(SCoutP(x))
    c = requests.get(url)
    crawl = BeautifulSoup(c.content, 'lxml')

    # 定位符合条件的a标签,直接提取href属性存入列表
    ref_tags = crawl.find_all('a', text=re.compile("SCP-"), href=re.compile("scp-"))
    ref = [tag['href'] for tag in ref_tags]

    param = "SCP-" + str(SkateP(x))
    # 过滤指向当前文章的链接,用列表推导式更安全(避免遍历原列表时删除元素导致的遗漏)
    ref = [link for link in ref if param not in link.upper()]

    if ref:
         print(ref)

对已有的标签列表提取href(保留原有获取逻辑的情况)

如果已经拿到包含<a>标签的ref列表,可遍历每个标签对象提取href:

# 假设ref是已获取的a标签列表
href_list = [tag['href'] for tag in ref]
# 过滤当前文章链接
param = "SCP-" + str(SkateP(x))
filtered_href = [link for link in href_list if param not in link.upper()]
print(filtered_href)

关键说明

  • BeautifulSoup的find_all返回Tag对象集合,每个Tag可通过['属性名']直接获取对应属性值
  • 原代码中遍历列表并remove元素易出现遍历遗漏,改用列表推导式过滤更稳定
  • 转大写后判断匹配,可避免大小写差异导致的过滤失效

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 06:57:09