urlopen() gbk 页面时 Python 中的编码问题

2024-02-07

我的代码在这里:

# coding:utf-8

if __name__ == '__main__':
    from urllib2 import urlopen
    url = 'http://iccna.blog.sohu.com/164572951.html'
    data = urlopen(url).read()
    soup = BeautifulSoup(data,fromEncoding='gb18030')
    print WebExtractor(soup)

但是调试的时候,数据是这样的:

��5h�,��4�H�5��VM��\

我应该怎么做才能获得 BeautifulSoup 的正确数据?谢谢!


问题是服务器返回的是Gzip压缩的数据。尝试这个:

#-*- coding: utf-8 -*-
from __future__ import print_function

import gzip
import StringIO
import urllib2
from BeautifulSoup import BeautifulSoup

url = 'http://iccna.blog.sohu.com/164572951.html'
response = urllib2.urlopen(url)
data = response.read()
data = StringIO.StringIO(data)
gzipper = gzip.GzipFile(fileobj=data)
html = gzipper.read()
soup = BeautifulSoup(html, fromEncoding='gbk')
print(soup)

汉字在我的系统上看起来仍然错误,但这可能会给你正确的方向。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

urlopen() gbk 页面时 Python 中的编码问题 的相关文章

随机推荐

  • C 解引用指针

    我开始学习C 但我不知道为什么应用程序总是崩溃 include
  • 将 Tableau 升级到 9.2 后,我无法在 Tableau Server (9.1) 中发布工作簿?

    有人经历过这个吗 这是非常令人沮丧的 因为我花了几个小时准备升级后的 9 2 版本的工作簿 我尝试发布到 9 1 Tableau Server 但它不允许 看来我可能还得再花几个小时在 9 0 上重新创建仪表板 9 0 与我们拥有的 Tab
  • 全局安装 Composer 以供 Laravel 使用?

    我在全局安装作曲家时遇到一些问题 我将 Composer 安装到 C wamp bin php php5 4 12 目录中 我使用的是 WAMP 并使用以下命令在 C wamp www project 中创建一个项目 php compose
  • 无法清除 WPF ListBox.SelectedItems 集合

    我似乎无法清除数据绑定 WPF ListBox 的 SelectedItems 集合 我尝试过调用 ListBox SelectedItems Clear 尝试将 SelectedIndex 设置为 1 将 SelectedItem 设置为
  • 菜单项的自定义视图

    我需要有动态菜单项 用户定义颜色的圆圈 如下所示 触摸此菜单项将打开一个颜色选择器 现在 我有示例 ColorPickerIcon 扩展了 View public class ColorPickerIcon extends View pri
  • Python subprocess.Popen.wait() 即使发生错误也返回 0

    我正在通过 Python 的子进程模块运行命令行实用程序 我使用命令行参数和 stdout subprocess PIPE 创建一个 subprocess Popen 对象 然后使用 subprocess wait 等待任务完成并返回返回代
  • 在 Google 图表中显示/隐藏线条/数据

    我正在尝试制作一个包含 2 条线的谷歌折线图 您应该能够通过两个复选框打开和关闭它们 显示 隐藏 有人有任何想法可以做到这一点 或者只是给出一些指示吗 我的猜测是一些 onClick jQuery 的东西
  • TS2307:找不到模块“类验证器”

    我正在尝试使用类验证器 https github com pleerock class validatorTypescript 项目中的模块 但是 当我编译打字稿时 会发出以下警告 src main ts domain Order ts 1
  • 获取并在 Woocommerce 单一产品页面上显示税率

    我正在尝试找到一种方法 如何仅显示产品所具有的税率 16 或 7 基本上 这个想法是应该有一个静态税 价格包含16 税费 or 价格含7 税 因此 百分比利率应该根据产品的利率而动态变化 知道如何解决这个问题 我找到的所有解决方案都显示完整
  • RabbitMQ 中的消息序列出现意外行为

    我想实现类似于选项 3 的 RabbitMQ 拓扑here https engineering nanit com rabbitmq retries the full story ca4cc6c5b493 除了一些差异 新拓扑每天应该处理几
  • 为什么我要使用无限超时的 Sleep() ?

    据 MSDN 报道 Sleep http msdn microsoft com en us library ms686298 VS 85 aspx可以提供INFINITE值并且 表明暂停不应超时 为什么我要调用 Sleep INFINITE
  • 是否有工具可以找出 PC 上安装了哪个 .NET 框架?

    我知道官方的方法是注册表 但这有点耗时 我必须检查几台电脑上安装的版本 它们都没有 VisualStudio 但它们全部 可能 a NET 框架的版本 既然热水可能已经存在 那么我在哪里可以找到它呢 这是一个免费的轻量级工具 可以快速完成此
  • 我们的记录中不存在 AWS 访问密钥 ID

    我创建了一个新的访问密钥并在 AWS CLI 中配置了该密钥aws configure 它创造了 ini文件输入 aws config 当我跑步时aws s3 ls它给 调用 ListBuckets 操作时发生客户端错误 InvalidAc
  • PHP 网址问题

    有没有办法可以使用 PHP 从链接中删除变量 例如 如果我有一个读取的链接http localhost link index php s 30 p 3我该如何去掉 s 30 p 3所以我的链接是这样的http localhost link
  • 如何将 URL 中的图像附加到 FormData - Javascript

    这是我的小 JavaScript 代码
  • Caffe:如何通过代码获取`solver.prototxt`参数?

    我想访问solver prototxt参数如base lr 基础学习率 或weight decay来自Python代码 有什么方法可以从solver net目的 谢谢 根据本教程 http nbviewer jupyter org gith
  • iOS 15 safari 工具栏现在在元素内滚动时隐藏

    在 iOS 15 上 无论您有顶部还是底部工具栏 在元素内滚动都会导致窗口调整大小 工具栏消失 在 iOS 14 上 只有当主体滚动时才会发生这种情况 请参阅下面的 gif 注意 黄色区域是一个带有溢出滚动的 div 并且主体不滚动 iOS
  • 使用 JavaScript 截断文本并附加省略号

    如何截断字符串并附加省略号 我想截断类似的东西 this is a very long string to this is a ve function truncate input if input length gt 5 return i
  • 检查 Activity 是否正在从 Service 运行

    怎样才能一个Service检查其应用程序之一是否Activity正在前台运行 使用以下方法和您的包名称 如果您的任何活动位于前台 它将返回 true public boolean isForeground String myPackage
  • urlopen() gbk 页面时 Python 中的编码问题

    我的代码在这里 coding utf 8 if name main from urllib2 import urlopen url http iccna blog sohu com 164572951 html data urlopen u