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

如何修改Python爬虫代码以正常显示孟加拉语并保存为CSV

解决孟加拉语谷歌新闻爬虫的Unicode转义与CSV保存问题

问题说明

现有基于requests和BeautifulSoup的谷歌新闻爬虫,爬取孟加拉语新闻后,输出的标题、摘要、日期显示为Unicode转义序列,需要修改代码实现孟加拉语正常显示,并将结果保存为CSV文件。

修改后的完整代码

import json
import requests
import csv
from bs4 import BeautifulSoup

def getNewsData():
    headers = {
        "User-Agent":
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36"
    }
    response = requests.get(
        "https://www.google.com/search?q=মুক্তিযুদ্ধ&gl=bd&tbm=nws&num=1", headers=headers
    )
    soup = BeautifulSoup(response.content, "html.parser")
    news_results = []

    for el in soup.select("div.SoaBEf"):
        news_results.append(
            {
                "link": el.find("a")["href"],
                "title": el.select_one("div.MBeuO").get_text().strip(),
                "snippet": el.select_one(".GI74Re").get_text().strip(),
                "date": el.select_one(".LfVVr").get_text().strip(),
                "source": el.select_one(".NUnG9d span").get_text().strip()
            }
        )
    
    # 正常显示孟加拉语输出
    print(json.dumps(news_results, indent=2, ensure_ascii=False))
    
    # 保存为CSV文件
    if news_results:
        keys = news_results[0].keys()
        with open("bangla_news.csv", "w", newline="", encoding="utf-8-sig") as f:
            writer = csv.DictWriter(f, fieldnames=keys)
            writer.writeheader()
            writer.writerows(news_results)
        print("新闻已成功保存到 bangla_news.csv")

getNewsData()

关键修改点说明

  • 修复缩进错误:原代码中函数getNewsData()内的代码未正确缩进,导致运行报错,已修正为函数内缩进格式。
  • 关闭Unicode转义:调用json.dumps时添加ensure_ascii=False参数,让孟加拉语字符直接显示,不再转为Unicode转义序列。
  • 添加CSV保存功能:
    1. 导入csv模块,使用DictWriter直接将字典格式的新闻数据写入CSV文件。
    2. 指定encoding="utf-8-sig",确保生成的CSV文件在Excel等工具中能正确显示孟加拉语,避免乱码。
    3. 用strip()去除文本中的换行和多余空格,优化输出内容的整洁度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 04:44:59