歌者文明清理员 发表于 2023-5-14 11:32:03

乱码

现象:

源代码:
from selenium.webdriver import Chrome, ChromeOptions
from bs4 import BeautifulSoup
from pandas import DataFrame
from time import sleep


options = ChromeOptions()
options.add_argument("headless")
driver = Chrome(options=options)

url = 'https://movie.douban.com/explore'
driver.get(url)

sleep(2)

source = driver.page_source

soup = BeautifulSoup(source, 'lxml')
names = soup.select('.drc-subject-info-title-text')
names =
types = soup.select('.drc-subject-info-subtitle')
types =

data = []
for i, name in enumerate(names):
    data.append(])

df = DataFrame(data)
df.to_csv('1.csv', encoding='utf-8')

driver.quit()

(曾多次运行,仍未解决)

isdkz 发表于 2023-5-14 11:32:29

这个问题可能是由于输出到csv文件时使用的编码不正确导致的。请尝试使用UTF-8-sig编码来保存csv文件,即将 encoding='utf-8' 改为 encoding='utf-8-sig' 。

修改后的代码如下:

from selenium.webdriver import Chrome, ChromeOptions
from bs4 import BeautifulSoup
from pandas import DataFrame
from time import sleep

options = ChromeOptions()
options.add_argument("headless")
driver = Chrome(options=options)

url = 'https://movie.douban.com/explore'
driver.get(url)

sleep(2)

source = driver.page_source

soup = BeautifulSoup(source, 'lxml')
names = soup.select('.drc-subject-info-title-text')
names =
types = soup.select('.drc-subject-info-subtitle')
types =

data = []
for i, name in enumerate(names):
    data.append(])

df = DataFrame(data)
df.to_csv('1.csv', encoding='utf-8-sig')

driver.quit()


这样应该就能够正确保存csv文件了。

歌者文明清理员 发表于 2023-5-14 11:33:14

isdkz 发表于 2023-5-14 11:32
这个问题可能是由于输出到csv文件时使用的编码不正确导致的。请尝试使用UTF-8-sig编码来保存csv文件,即将...

gpt有问题,点击“复制代码”换行全没了

陶远航 发表于 2023-5-14 11:37:26

如果导出 csv 文件中出现了乱码,可以尝试修改 to_csv 中的参数 encoding='utf-8' 为其他编码方式,如 gbk、gb2312 等,因为 Excel 打开 csv 文件时默认使用的编码方式可能与 utf-8 不同。如果代码本身输出结果为乱码,则需要确认网页的编码方式,并在 BeautifulSoup 解析时指定正确的编码方式,如 'gbk'、'gb2312' 等。

isdkz 发表于 2023-5-14 11:40:28

歌者文明清理员 发表于 2023-5-14 11:33
gpt有问题,点击“复制代码”换行全没了

你可以不要复制它的代码,直接把你原来代码的 encoding='utf-8' 改成 encoding='utf-8-sig'
页: [1]
查看完整版本: 乱码