joestarc 2020-06-02 14:03 采纳率: 0%
浏览 1200

python爬虫中文乱码,用了utf-8解码,仍然是乱码, 如何处理?

import requests
import json
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
from bs4 import BeautifulSoup
import sys

def getHTMLText(url):
    try:
        headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36'}
        h=requests.get(url,headers = headers, verify = False)
        h.raise_for_status()
        h.encoding="gbk"
        return h.text
    except:
        return ""

url = 'http://www.shicimingju.com/book/hongloumeng/1.html'
soup = BeautifulSoup(getHTMLText(url),"html.parser")
with open('第一章.txt','w',encoding = 'UTF-8',errors = 'ignore') as f:
    f.write(str(soup))    

运行结果(部分)是


  • 写回答

1条回答 默认 最新

  • 双玉山人 2020-06-02 14:43
    关注

    h.encoding="gbk"应该是decoding吧。 这个和下面的open('第一章.txt','w',encoding = 'UTF-8',errors = 'ignore'),不一致吧,
    建议参考下,https://blog.csdn.net/FCinPJP/article/details/82872015

    评论

报告相同问题?

悬赏问题

  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。