Python 抓取岭东资讯比赛成绩

使用 requests + BeautifulSoup 爬取岭东资讯比赛成绩,自动保存为 CSV 文件。

代码功能说明

本脚本用于抓取 岭东资讯 上的比赛成绩数据,主要步骤包括:

  1. 构造分页 URL(支持自定义页码范围)
  2. 发送 GET 请求并解析 HTML
  3. 提取表格数据,清理括号内容
  4. 保存为 比赛数据.csv 文件

核心代码

python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
import requests
from bs4 import BeautifulSoup
import csv
import re

base_url = "http://china.530520.com.tw/msg/matchGameDetail.asp?Page={}&Ucgp=326&mID=431&mgID=1665"

rows = []
for i in range(50):  # 总页码可调整
    url = base_url.format(i)
    response = requests.get(url)
    response.encoding = 'utf-8'
    soup = BeautifulSoup(response.text, 'html.parser')
    table = soup.find(name="table", attrs={'border': '0', 'cellpadding': '3'})
    
    if i == 0:
        for tr in table.find_all('tr')[0:1]:
            row = [re.sub(r'\[.*?\]', '', td.text.strip()) for td in tr.find_all('td')]
            if row:
                rows.append(row)
    else:
        for tr in table.find_all('tr')[1:]:
            row = [re.sub(r'\[.*?\]', '', td.text.strip()) for td in tr.find_all('td')]
            if row:
                rows.append(row)

with open('比赛数据.csv', 'w', newline='', encoding='utf-8-sig') as f:
    writer = csv.writer(f)
    writer.writerows(rows)

print("数据已成功抓取并保存到'比赛数据.csv'文件中。")

使用说明

  • URL 参数:Ucgp 和 mID 分别对应俱乐部/公棚编号与比赛编号,可根据需要修改
  • 页码范围:range(50) 中的 50 可按实际总页数调整
  • 输出文件:同目录下生成 比赛数据.csv,编码为 UTF-8 with BOM