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

Web Scraping导出CSV时第三列Jackpot值缺失问题求助

问题:CSV导出时Jackpot列值缺失,但控制台打印正常

运行下方Python代码后,CSV文件的第三列Jackpot值为空,但控制台能正常打印出Jackpot内容,打印结果如下:

$
 450,000,000

代码示例:

from bs4 import BeautifulSoup
import requests
import csv

source = requests.get('https://www.lotto.net/mega-millions/numbers/2018').text
soup = BeautifulSoup(source, 'lxml')
jackpots = soup.find_all('div', class_="results-vsmall archive-list")
print(jackpots)


#next sibling
csv_file = open('cms_scrape.csv', 'w')
csv_writer = csv.writer(csv_file)
csv_writer.writerow(['Date', 'Weekday', 'Jackpot'])

for jackpot in jackpots:
      Weekday = jackpot.find("div", class_="date").span.text
      print(Weekday)
      Date = jackpot.find('div', class_ = "date").span.next_sibling
      print(Date)
      Jackpot = jackpot.find('div', class_='jackpot').span.text
      print(Jackpot)
      csv_writer.writerow([Date, Weekday, Jackpot])

csv_file.close()

原因分析

控制台打印的Jackpot内容包含换行符和多余空格,CSV写入时,换行符会被解析成新行分隔符,导致Jackpot内容被挤到下一行,看起来像是当前行的Jackpot列缺失。

解决方案

对Jackpot变量做字符串清理,去掉多余的换行、空格,合并成完整的金额字符串即可解决问题:

修改后的完整代码

from bs4 import BeautifulSoup
import requests
import csv

source = requests.get('https://www.lotto.net/mega-millions/numbers/2018').text
soup = BeautifulSoup(source, 'lxml')
jackpots = soup.find_all('div', class_="results-vsmall archive-list")

# 添加newline=''避免Windows下CSV出现多余空行
csv_file = open('cms_scrape.csv', 'w', newline='')
csv_writer = csv.writer(csv_file)
csv_writer.writerow(['Date', 'Weekday', 'Jackpot'])

for jackpot in jackpots:
      Weekday = jackpot.find("div", class_="date").span.text.strip()
      Date = jackpot.find('div', class_ = "date").span.next_sibling.strip()
      # 清理Jackpot的换行与空格
      jackpot_span = jackpot.find('div', class_='jackpot').span
      Jackpot = ''.join(jackpot_span.text.split()).strip()
      
      csv_writer.writerow([Date, Weekday, Jackpot])

csv_file.close()

关键优化说明

  • 使用split()拆分字符串后再用join()合并,彻底去除所有换行和多余空格
  • 打开CSV文件时添加newline='',避免Windows系统下导出的CSV出现空行
  • 对Date和Weekday也做strip()处理,清理可能存在的冗余空格

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:27:33