鱼C论坛

 找回密码
 立即注册
查看: 1976|回复: 4

[已解决]乱码

[复制链接]
发表于 2023-5-14 11:32:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
现象:
Snipaste_2023-05-14_11-31-03.png
源代码:
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 = [name.text for name in names]
types = soup.select('.drc-subject-info-subtitle')
types = [movieType.text for movieType in types]

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

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

driver.quit()
(曾多次运行,仍未解决)
最佳答案
2023-5-14 11:32:29
这个问题可能是由于输出到csv文件时使用的编码不正确导致的。请尝试使用UTF-8-sig编码来保存csv文件,即将 encoding='utf-8' 改为 encoding='utf-8-sig' 。

修改后的代码如下:
from selenium.webdriver import Chrome, ChromeOptionsfrom bs4 import BeautifulSoupfrom pandas import DataFramefrom time import sleepoptions = ChromeOptions()options.add_argument("headless")driver = Chrome(options=options)url = 'https://movie.douban.com/explore'driver.get(url)sleep(2)source = driver.page_sourcesoup = BeautifulSoup(source, 'lxml')names = soup.select('.drc-subject-info-title-text')names = [name.text for name in names]types = soup.select('.drc-subject-info-subtitle')types = [movieType.text for movieType in types]data = []for i, name in enumerate(names):    data.append([name, types[ i]])df = DataFrame(data)df.to_csv('1.csv', encoding='utf-8-sig')driver.quit()
这样应该就能够正确保存csv文件了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-14 11:32:29 | 显示全部楼层    本楼为最佳答案   
这个问题可能是由于输出到csv文件时使用的编码不正确导致的。请尝试使用UTF-8-sig编码来保存csv文件,即将 encoding='utf-8' 改为 encoding='utf-8-sig' 。

修改后的代码如下:
from selenium.webdriver import Chrome, ChromeOptionsfrom bs4 import BeautifulSoupfrom pandas import DataFramefrom time import sleepoptions = ChromeOptions()options.add_argument("headless")driver = Chrome(options=options)url = 'https://movie.douban.com/explore'driver.get(url)sleep(2)source = driver.page_sourcesoup = BeautifulSoup(source, 'lxml')names = soup.select('.drc-subject-info-title-text')names = [name.text for name in names]types = soup.select('.drc-subject-info-subtitle')types = [movieType.text for movieType in types]data = []for i, name in enumerate(names):    data.append([name, types[ i]])df = DataFrame(data)df.to_csv('1.csv', encoding='utf-8-sig')driver.quit()
这样应该就能够正确保存csv文件了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

gpt有问题,点击“复制代码”换行全没了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-14 11:37:26 | 显示全部楼层
如果导出 csv 文件中出现了乱码,可以尝试修改 to_csv 中的参数 encoding='utf-8' 为其他编码方式,如 gbk、gb2312 等,因为 Excel 打开 csv 文件时默认使用的编码方式可能与 utf-8 不同。如果代码本身输出结果为乱码,则需要确认网页的编码方式,并在 BeautifulSoup 解析时指定正确的编码方式,如 'gbk'、'gb2312' 等。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

你可以不要复制它的代码,直接把你原来代码的 encoding='utf-8' 改成 encoding='utf-8-sig'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 05:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表