爬取网页,返回值为【】空列表
不同于之前的异步加载ajax导致的返回值为空列表的情况,这次返回值为空列表,是由于没证对网页使用正确的文字编码分析导致的。
我们可以通过查看网页的源代码,决定使用什么格式的解码。
查看方法
右键网页空白处,点击查看网页源代码,此处以下图为例。
找到源代码中的charset的格式,可以看到对于内容,采用了utf-8的文字编码格式。
因此,我们在爬取时,同样使用的utf-8来解码。
resp = requests.get(url, headers=Headers)
text = resp.content.decode("utf-8", "ignore")
但如果是gdk解码或其他解码,如下图
我们以同样的方式修改爬虫代码。
resp = requests.get(url, headers=Headers)
text = resp.content.decode("gdk", "ignore")
UTF-8与GBK的区别:
GBK: 专门用来解决中文编码,双字节。 是在国家标准GB2312基础上扩容后兼容GB2312标准。 包含全部中文字符。
UTF-8: 解决国际上制度的一种多字节编码,对英文使用8位(1个字节),中文使用24位(3个字节)来编码。 对于英文字符较多的论坛适用于UTF-8节省空间。 包含全世界所有国家需要用到的字符。
简言而知,GBK编码方式的编码是为中国中文编码而创造的,而国际上大多使用UTF-8编码,这也是为什么大多数的网页是使用UTF-8编码而不是GBK。