wangqianchongya 2021-12-27 10:34 采纳率: 70%
浏览 148
已结题

UnicodeDecodeError: 'gbk' codec can't decode byte 0xb0 in position 18: illegal multibyte sequence


import codecs

from selenium import webdriver
import time
import csv
import pymongo

client = pymongo.MongoClient('localhost', 27017)
mydb = client['mydb']
qq_shuo = mydb['qq_shuo']

driver = webdriver.PhantomJS(executable_path=r'D:\Program Files (x86)\phantomjs-2.1.1-windows\bin\phantomjs.exe')
driver.maximize_window()

def get_info(qq):
    driver.get('http://user.qzone.qq.com/{}/311'.format(qq))
    driver.implicitly_wait(10)
    try:
        driver.find_element_by_id('login_div')
        a = True
    except:
        a = False
    if a == True:
        driver.switch_to.frame('login_frame')
        driver.find_element_by_id('switcher_plogin').click()
        driver.find_element_by_id('u').clear()
        driver.find_element_by_id('u').send_keys('QQ账号')
        driver.find_element_by_id('p').clear()
        driver.find_element_by_id('p').send_keys('QQ密码')
        driver.find_element_by_id('login_button').click()
        time.sleep(3)
    driver.implicitly_wait(3)
    try:
        driver.find_element_by_id('QM_OwnerInfo_Icon')
        b = True
    except:
        b = False
    if b == True:
        driver.switch_to.frame('app_canvas_frame')
        contents = driver.find_elements_by_css_selector('.content')
        times = driver.find_elements_by_css_selector('.c_tx.c_tx3.goDetail')
        for content, tim in zip(contents, times):
            data = {
                'time': tim.text,
                'content': content.text
            }
            qq_shuo.insert_one(data)

if __name__ == '__main__':
    qq_lists = []
    fp = codecs.open('C:/Users/往前冲呀/Desktop/QQmail.csv','r')
    reader = csv.DictReader(fp)
    for row in reader:
        qq_lists.append(row['电子邮件'].split('@')[0])
    fp.close()
    for item in qq_lists:
        get_info(item)

运行结果及报错内容


Traceback (most recent call last):
  File "E:/python/从零开始学Python网络爬虫_源代码/qq_kongjian.py", line 53, in <module>
    for row in reader:
  File "D:\Program Files (x86)\Anaconda3\lib\csv.py", line 110, in __next__
    self.fieldnames
  File "D:\Program Files (x86)\Anaconda3\lib\csv.py", line 97, in fieldnames
    self._fieldnames = next(self.reader)
UnicodeDecodeError: 'gbk' codec can't decode byte 0xb0 in position 18: illegal multibyte sequence

Process finished with exit code 1
  • 写回答

6条回答 默认 最新

  • 陈年椰子 2021-12-27 15:25
    关注

    这个CSV到底时啥编码呀。 发邮件给我看看。hndm@qq.com

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 1月4日
  • 已采纳回答 12月27日
  • 创建了问题 12月27日