找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3167|回复: 4

[求助] bs4爬取页面显示的是编码,不是乱码,也不是汉字,懵逼...

5

主题

11

帖子

11

积分

贫民

积分
11
木风 发表于 2017-8-12 14:04:42 | 显示全部楼层 |阅读模式
先看下代码,因为刚学习,抓一个新浪网页做实验。
系统是window 10 ,在cmd 下输出结果。
import urllib,requests
from bs4 import BeautifulSoup

url1='http://news.sina.com.cn/o/2017-08-11/doc-ifyixcaw4263377.shtml'


res = requests.get(url1)
res.encoding = 'utf-8'


soup = BeautifulSoup(res.text,'html5lib')
print soup.select('#artibody p')

然后输出的结果是:
[<p>\u3000\u3000\u539f\u6807\u9898\uff1a\u5317\u4eac\u6c14\u8c61\u53f0\u53d1
u670811\u65e519\uff1a45\uff0c\u5317\u4eac\u6c14\u8c61\u53f0\u53d1\u5e03\u51b
/p>, <p>\u3000\u3000\u4eca\u665a19\u70b9\u534a\u524d\u540e\uff0c\u5317\u4eac

类似这样的编码.

但是:print soup.select('#artibody p')加上【0】,显示的是
PS C:\Users\jing> python e:/pc3.py
<p>銆€銆€鍘熸爣棰橈細鍖椾含姘旇薄鍙板彂甯冨啺闆归粍鑹查璀?鍩庡尯閬亣鍐伴浌澶╂皵</p>

乱码!

如果再后面加上.text,形成print soup.select('#artibody p')[0].text

显示:C:\Users\jing> python e:/pc3.py
 原标题:北京气象台发布冰雹黄色预警 城区遭遇冰雹天气

正常了!!!!懵逼了!!这是啥情况,看网上别人的不是这样啊

回复

使用道具 举报

5

主题

11

帖子

11

积分

贫民

积分
11
木风  楼主| 发表于 2017-8-12 14:05:15 | 显示全部楼层
补充下,python 是2.7.1
回复 支持 反对

使用道具 举报

0

主题

12

帖子

12

积分

贫民

积分
12
QQ
pl2379965 发表于 2017-8-14 14:48:03 | 显示全部楼层
就是编码错误
回复 支持 反对

使用道具 举报

5

主题

11

帖子

11

积分

贫民

积分
11
木风  楼主| 发表于 2017-8-18 18:15:46 | 显示全部楼层

但是问题怎么解决呢,具体哪里的错误呢?
回复 支持 反对

使用道具 举报

0

主题

5

帖子

5

积分

贫民

积分
5
liuvz11 发表于 2017-8-24 10:48:53 | 显示全部楼层
你不加.text输出的是<class 'bs4.element.Tag'>, 可以尝试修改bs4的编码解决, 不会用bs4, 楼主自己试试吧
回复 支持 反对

使用道具 举报

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

本版积分规则

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