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

Python+requests-html爬取数据后,如何导出至Excel文件?

解决方案

要把爬取的数据导出到Excel,核心是先把零散的数据整理成结构化格式,再用pandas的to_excel方法导出。以下是修改后的完整代码:

from requests_html import HTMLSession
import pandas as pd

matchlink = 'https://www.betexplorer.com/football/serbia/prva-liga/results/'

session = HTMLSession()
r = session.get(matchlink)

allmatch = r.html.find('.in-match')
results = r.html.find('.h-text-center a')
matchodds = r.html.find('[data-odd]')
odds = [matchodd.attrs["data-odd"] for matchodd in matchodds]

# 初始化空列表存储结构化数据
data_list = []
idx = 0

for match, res in zip(allmatch, results):
    if res.text == 'POSTP.':
        continue
    # 拆分赔率为单独的胜、平、负项
    win_odd, draw_odd, lose_odd = odds[idx], odds[idx+1], odds[idx+2]
    # 以字典形式存入列表,字典key将作为Excel表头
    data_list.append({
        '比赛对阵': match.text,
        '比赛结果': res.text,
        '胜赔率': win_odd,
        '平赔率': draw_odd,
        '负赔率': lose_odd
    })
    idx += 3

# 转成DataFrame格式
df = pd.DataFrame(data_list)
# 导出到Excel,index=False避免导出默认行索引
df.to_excel('塞尔维亚联赛赛事数据.xlsx', index=False)
print("数据已成功导出到Excel文件!")

关键说明:

  • 不再直接打印数据,而是将每行数据以字典形式存入列表,让数据结构更清晰,Excel表头自动对应字典的键。
  • 导出xlsx格式需要依赖openpyxl库,运行报错的话先执行安装命令:
    pip install openpyxl
    
  • 若习惯用列表嵌套列表的形式,也可以这样写:
    # 初始化列表,第一行是表头
    data_list = [['比赛对阵', '比赛结果', '胜赔率', '平赔率', '负赔率']]
    idx = 0
    
    for match, res in zip(allmatch, results):
        if res.text == 'POSTP.':
            continue
        win_odd, draw_odd, lose_odd = odds[idx], odds[idx+1], odds[idx+2]
        data_list.append([match.text, res.text, win_odd, draw_odd, lose_odd])
        idx += 3
    
    df = pd.DataFrame(data_list[1:], columns=data_list[0])
    df.to_excel('塞尔维亚联赛赛事数据.xlsx', index=False)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 18:57:07