如何用BeautifulSoup同时抓取MLS两个分区表格的球队链接?
批量抓取MLS东西部联盟球队链接
你原来的代码只抓取了第一个表格的链接,要同时获取东西部两个表格的链接,只需要调整表格选择方式并遍历所有目标表格即可。
修改后的代码如下:
import requests from bs4 import BeautifulSoup standings_url = "https://fbref.com/en/comps/22/Major-League-Soccer-Stats" data = requests.get(standings_url) soup = BeautifulSoup(data.text, "lxml") # 获取所有class为stats_table的表格(前两个对应东西部联盟) standings_tables = soup.select("table.stats_table") team_urls = [] for table in standings_tables: # 提取当前表格内的所有链接 links = [l.get("href") for l in table.find_all("a")] # 筛选出指向球队页面的链接 squad_links = [l for l in links if "/squads/" in l] # 拼接完整URL并添加到总列表 team_urls.extend([f"https://fbref.com{l}" for l in squad_links]) # 可选:去重(避免出现重复的球队链接) team_urls = list(set(team_urls)) print(team_urls)
关键修改说明:
- 把
soup.select_one("table.stats_table")改为soup.select("table.stats_table"),这样会返回页面上所有匹配的表格,正好对应东部、西部联盟的两个目标表格 - 新增循环遍历每个表格,逐个提取链接并合并到总列表中
- 可选的去重步骤确保最终列表里没有重复的球队链接
内容的提问来源于stack exchange,提问作者gp12
相关产品推荐
相关产品推荐

