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

如何用BeautifulSoup将抓取的每个href赋值给link1、link2等变量

How to Assign Scraped hrefs to Individual Variables (link1, link2, etc.) with BeautifulSoup

我希望将通过BeautifulSoup抓取到的每个href分别赋值给独立变量,例如link1、link2、link3……。我当前的函数代码如下:

def board_list(): 
    html = driver.page_source 
    soup=BeautifulSoup(html, "html.parser") 
    for link in soup.findAll('a', {'class': 'board-tile'}): 
        href = driver.current_url+link.get('href') 
        title = link.string 
        print(title) 
        print(href)

请指导我实现该需求。

嘿,我来帮你搞定这个需求!其实要把每个抓取到的href赋值给独立变量(link1、link2...),有两种常见的实现方式,下面给你详细说明:

方法一:使用字典存储(推荐)

这种方式比直接创建一堆独立变量更灵活、易维护,尤其是当你不确定会抓取到多少个链接的时候。你可以把每个href和对应的title存入字典,用link1、link2这种格式作为字典的键:

def board_list(): 
    html = driver.page_source 
    soup = BeautifulSoup(html, "html.parser") 
    links_dict = {}  # 存储所有链接的字典
    titles_dict = {}  # 可选:单独存储标题的字典
    
    # 用enumerate获取从1开始的索引,用来命名link1、link2
    for idx, link in enumerate(soup.findAll('a', {'class': 'board-tile'}), start=1): 
        href = driver.current_url + link.get('href') 
        title = link.string 
        
        # 将链接和标题存入字典
        links_dict[f'link{idx}'] = href
        titles_dict[f'title{idx}'] = title
        
        print(title) 
        print(href)
    
    # 返回字典,方便后续调用
    return links_dict, titles_dict

# 调用函数获取所有链接和标题
all_links, all_titles = board_list()
# 示例:访问第一个链接
print(all_links['link1'])
# 示例:访问第一个标题
print(all_titles['title1'])

方法二:直接创建独立变量(不推荐,仅作参考)

如果你确实需要生成link1、link2这类独立的全局/局部变量,可以用globals()或locals()函数动态创建,但这种方式会让代码变得混乱,容易引发变量名冲突,后续调试和维护也很麻烦,不建议在生产代码中使用:

def board_list(): 
    html = driver.page_source 
    soup = BeautifulSoup(html, "html.parser") 
    
    for idx, link in enumerate(soup.findAll('a', {'class': 'board-tile'}), start=1): 
        href = driver.current_url + link.get('href') 
        title = link.string 
        
        # 动态创建全局变量
        globals()[f'link{idx}'] = href
        globals()[f'title{idx}'] = title
        
        print(title) 
        print(href)

# 调用函数后,直接使用link1、title1等变量
board_list()
print(link1)
print(title1)

小提示

优先选择字典的方式,因为它能更好地适配链接数量的变化,也能让你更清晰地管理所有抓取到的内容,避免不必要的变量污染。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:20:48