1
ClutchBear 2018-08-14 15:45:09 +08:00
如果是 requests 获取的,
res.encoding = res.apparent_encoding 就行了 |
2
h19981126g OP @ClutchBear 不行呀,到 web 上显示的源码还是>这种转义的
|
3
imn1 2018-08-14 16:53:16 +08:00
问题就出在 html.unescape,这个就是转义啊
|
4
h19981126g OP @imn1 这个 html.unescape 是反转义,原来传过来的就是转义的,现在用反转义,结果和不用 html.unescape 显示的一样。
|
5
imn1 2018-08-14 18:07:50 +08:00
给个例子,说明编码,以及期望显示和编码
|
6
likuku 2018-08-14 19:33:33 +08:00 via iPhone
这是在作爬虫 /内容聚合吧?要是内容都自己从零生产,那么全栈使用 UTF-8 了事
|
7
h19981126g OP @ClutchBear
@imn1 @imn1 @likuku 爬取的内容为 b ‘'\r\n\t\t\t\t\t\t\t\t<TD>’这样的,需要显示到 en,utf-8 的网页上 |
8
imn1 2018-08-14 22:44:23 +08:00
内容是 bytes,你要先 decode
unecape(这里是 str),没有报错么? |
9
h19981126g OP @imn1 是这样的
r = res.encode("gb2312") info = html.unescape(r) return render.model(info) 这样写才报错 a bytes-like object is required, not 'str', 去掉 encode("gb2312") 就不会报错,但<tr>这类应该转义回去的没转义 |
10
imn1 2018-08-14 23:54:11 +08:00
你逐行 print 结果把,我也不知道你这个 render.model 干了什么
print(info) |
11
h19981126g OP @imn1 print 出来就是<tr>这种没转义的
|
12
h19981126g OP |