如何处理来自urllib.request.urlopen响应编码()

我想使用正则表达式来搜索网页,但我发现了以下错误:

类型错误:不能对类字节对象使用字符串模式

我明白为什么,urllib.request.urlopen()返回一个字节流,因此,至少我猜,再不知道使用的编码。 那我该怎么在这种情况下怎么办? 有没有可能在指定的URLRequest的编码方法的一种方式或将我需要重新编码字符串自己? 如果是的话那我希望做的,我想如果在指定的HTML我应该阅读从头信息或编码类型的编码,然后将其重新编码来呢?

--------------解决方案-------------

你只需要响应解码,使用Content-Type头通常是最后一个值。 有教程赋予了太多的例子。

output = response.decode('utf-8')

对我来说,解决的办法是如下(python3):

resource = urllib.request.urlopen(an_url)
content = resource.read().decode(resource.headers.get_content_charset())

urllib.urlopen(url).headers.getheader('Content-Type')

将输出是这样的:

text/html; charset=utf-8

你犯了一个请求后req = urllib.request.urlopen(...)你必须通过调用读取请求html_string = req.read()这将使你的字符串响应,然后可以分析你想要的方式。

分类:蟒蛇 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.246 (s). 10 q(s)