鱼C论坛

 找回密码
 立即注册
查看: 2577|回复: 4

[已解决]爬虫

[复制链接]
发表于 2020-8-18 22:33:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import urllib.request


url = 'https://www.biduo.cc/biquge/39_39888/c13353637.html'

headers = {
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN',
'Cache-Control': 'no-cache',
'Connection': 'Keep-Alive',
#'Host': 'www.kanmaoxian.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363'
}

res = urllib.request.Request(url=url,headers=headers)

response = urllib.request.urlopen(res)
print(response.read().decode("gbk",'ignore'))
有大佬能帮忙看看这个程序吗,网页是gbk编码的为什么按gbk解码后还是不行
最佳答案
2020-8-18 23:00:35


把这个 headers 去掉:'Accept-Encoding': 'gzip, deflate, br' 即可

参考代码:
import urllib.request


url = 'https://www.biduo.cc/biquge/39_39888/c13353637.html'

headers = {
'Accept-Language': 'zh-CN',
'Cache-Control': 'no-cache',
'Connection': 'Keep-Alive',
#'Host': 'www.kanmaoxian.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363'
}

res = urllib.request.Request(url=url,headers=headers)

response = urllib.request.urlopen(res)
print(response.read().decode("gbk")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-18 23:00:35 | 显示全部楼层    本楼为最佳答案   


把这个 headers 去掉:'Accept-Encoding': 'gzip, deflate, br' 即可

参考代码:
import urllib.request


url = 'https://www.biduo.cc/biquge/39_39888/c13353637.html'

headers = {
'Accept-Language': 'zh-CN',
'Cache-Control': 'no-cache',
'Connection': 'Keep-Alive',
#'Host': 'www.kanmaoxian.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363'
}

res = urllib.request.Request(url=url,headers=headers)

response = urllib.request.urlopen(res)
print(response.read().decode("gbk")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-18 23:22:16 | 显示全部楼层
Twilight6 发表于 2020-8-18 23:00
把这个 headers 去掉:'Accept-Encoding': 'gzip, deflate, br' 即可

参考代码:

大佬,为啥要去掉那个,我整个从审查元素的headers搞下来的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-18 23:26:43 | 显示全部楼层
君子好逑 发表于 2020-8-18 23:22
大佬,为啥要去掉那个,我整个从审查元素的headers搞下来的

因为你加了那个之后网站给你返回的是经过 GZIP 压缩后的数据,你需要先解压再解码才能呈现出真正的内容。
所以有三种方法可以解决你的问题。
1. 楼上所说,去掉那行代码。
2. 不去那行代码,改成下面的形式
import gzip

content = gzip.decompress(response.read()).decode("gbk")
print(content)

3. 使用 requests (推荐)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-18 23:43:11 | 显示全部楼层
°蓝鲤歌蓝 发表于 2020-8-18 23:26
因为你加了那个之后网站给你返回的是经过 GZIP 压缩后的数据,你需要先解压再解码才能呈现出真正的内容。 ...

谢谢大佬解惑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 07:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表