Python网页爬虫生成字典格式异常,寻求修正方案
修正爬虫字典输出格式的解决方案
嘿,我来帮你搞定这个字典格式的问题!从你的描述来看,你已经能成功提取到单个tr标签里的球员数据,但输出不符合字典规范——大概率是没把提取到的字段和对应值正确映射成键值对对吧?我给你整理了修正后的代码示例,你可以参考调整:
首先,假设你的目标tr标签里的td元素分别对应球员姓名、位置、球队这些字段,我们可以这样构建规范的字典:
import requests from bs4 import BeautifulSoup URL = "https://fantasy.premierleague.com/player-list/" # 请求并解析网页 response = requests.get(URL) soup = BeautifulSoup(response.text, 'html.parser') # 定位目标单个tr标签(可根据实际结构调整筛选条件,比如加class属性) target_tr = soup.find('tr') # 定义字典的键(对应你要提取的字段,顺序要和td内容匹配) player_keys = ['player_name', 'position', 'team', 'total_points'] # 提取tr下所有td的有效文本(自动去除空格和换行) player_values = [td.get_text(strip=True) for td in target_tr.find_all('td') if td.get_text(strip=True)] # 将键与值配对,生成标准字典 player_dict = dict(zip(player_keys, player_values)) # 输出规范的字典格式 print(player_dict)
关键注意点:
- 一定要保证
player_keys的顺序和player_values的顺序完全对应,否则键值对会错位 get_text(strip=True)能帮你清理文本里多余的空格、换行,让数据更整洁- 如果你的tr标签里的td数量和定义的键数不匹配,可以根据实际网页结构调整
player_keys的字段,或者过滤掉不需要的td元素
如果你的目标tr的td结构和我假设的不一样,只需要修改player_keys的字段名,以及调整target_tr的定位逻辑就可以啦!
内容的提问来源于stack exchange,提问作者SIM
相关产品推荐
相关产品推荐

