找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4240|回复: 5

[已解决] PYTHON爬去网站出现的编码问题

2

主题

6

帖子

6

积分

贫民

积分
6
aukuno 发表于 2017-2-4 22:36:57 | 显示全部楼层 |阅读模式
问题描述:我想用BeautifulSoup爬取一个在<table>标签下的数据(如下所示),希望从中抽取表格里的所有数据
  1. <table width="100%" cellpadding="0" cellspacing="0" class="winning-lottery-table">
  2.                         <thead>
  3.                             <tr>
  4.                                 <th width="33.3%"><span class="text1">期号</span><span class="text2">开奖号</span><span class="text1">十位</span><span class="text1">个位</span><span class="text1">后三</span></th>
  5.                                 <th width="33.3%"><span class="text1">期号</span><span class="text2">开奖号</span><span class="text1">十位</span><span class="text1">个位</span><span class="text1">后三</span></th>
  6.                                 <th><span class="text1">期号</span><span class="text2">开奖号</span><span class="text1">十位</span><span class="text1">个位</span><span class="text1">后三</span></th>
  7.                             </tr>
  8.                         </thead>
  9.                         <tbody id="cqssc_draw_list_tbody"><tr><td><span class="text1">001</span><span id="draw_td_001"><span class="text2 red_big">1 3 2 1 7</span><span class="text1">小单</span><span class="text1"><span class="orange">大</span>单</span><span class="text1">组六</span></span></td><td><span class="text1">041</span><span id="draw_td_041"><span class="text2 red_big">7 6 6 4 7</span><span class="text1">小<span class="orange">双</span></span><span class="text1"><span class="orange">大</span>单</span><span class="text1">组六</span></span></td><td><span class="text1">081</span>7 4 6</span><span class="text1">小<span class="orange">双</span></span><span class="text1"><span class="orange">大</span><span class="orange">双</span></span><span class="text1">组六</span></span></td><td><span class="text1">079</span><span id="draw_td_079"><span class="text2 red_big">5 1 3 1 3</span><span class="text1">小单</span><span class="text1">小单</span><span class="text1"><span class="orange">组三</span></span></span></td><td><span class="text1">119</span><span id="draw_td_119"></span></td></tr><tr class="bgcolor"><td><span class="text1">040</span></td></tr></tbody>
  10.                     </table>
复制代码


我的代码长这样
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Fri Jan 20 15:17:21 2017

  4. @author: Administrator
  5. """

  6. # -*- coding: utf-8 -*-
  7. from bs4 import BeautifulSoup
  8. import urllib2


  9. url = "http://baidu.lecai.com/lottery/draw/sorts/cqssc.php?agentId=5591"
  10. response = urllib2.urlopen(url)


  11. soup = BeautifulSoup(response, 'html.parser')
  12. dt = soup.find_all('table')

  13. print dt
复制代码

部分结果输出如下
  1. [<table cellpadding="0" cellspacing="0" class="winning-lottery-table" width="100%">\n<thead>\n<tr>\n<th width="33.3%"><span class="text1">\u671f\u53f7</span><span class="text2">\u5f00\u5956\u53f7</span><span class="text1">\u5341\u4f4d</span><span class="text1">\u4e2a\u4f4d</span><span class="text1">\u540e\u4e09</span></th>\n<th width="33.3%"><span class="text1">\u671f\u53f7</span><span class="text2">\u5f00\u5956\u53f7</span><span class="text1">\u5341\u4f4d</span><span class="text1">\u4e2a\u4f4d</span><span class="text1">\u540e\u4e09</span></th>\n<th><span class="text1">\u671f\u53f7</span><span class="text2">\u5f00\u5956\u53f7</span><span class="text1">\u5341\u4f4d</span><span class="text1">\u4e2a\u4f4d</span><span class="text1">\u540e\u4e09</span></tbody>\n</table>]
  2. [Finished in 0.9s]
复制代码
应该是编码的问题,我想问应该怎么解决?求助各位大神!
求解决

回复

使用道具 举报

1419

主题

1891

帖子

291

积分

侠客

积分
291

最佳新人热心会员默默耕耘

whydo1 发表于 2017-2-5 11:45:03 | 显示全部楼层
>>> b'\u671f\u53f7'.decode('unicode-escape')
'期号'
python3.4.4, win10
回复 支持 1 反对 0

使用道具 举报

0

主题

4

帖子

4

积分

贫民

积分
4
guojianye99 发表于 2017-2-6 10:10:21 | 显示全部楼层
你代码的运行环境问题,在不同的控制台显示的内容不一样。
回复 支持 反对

使用道具 举报

0

主题

4

帖子

4

积分

贫民

积分
4
guojianye99 发表于 2017-2-6 10:18:24 | 显示全部楼层
我用eclipse把  print dt换成  print dt[0]
<table cellpadding="0" cellspacing="0" class="winning-lottery-table" width="100%">
<thead>
<tr>
<th width="33.3%"><span class="text1">期号</span><span class="text2">开奖号</span><span class="text1">十位</span><span class="text1">个位</span><span class="text1">后三</span></th>
<th width="33.3%"><span class="text1">期号</span><span class="text2">开奖号</span><span class="text1">十位</span><span class="text1">个位</span><span class="text1">后三</span></th>
<th><span class="text1">期号</span><span class="text2">开奖号</span><span class="text1">十位</span><span class="text1">个位</span><span class="text1">后三</span></th>
</tr>
</thead>
<tbody id="cqssc_draw_list_tbody">
</tbody>
</table>
回复 支持 反对

使用道具 举报

2

主题

6

帖子

6

积分

贫民

积分
6
aukuno  楼主| 发表于 2017-2-6 17:57:14 | 显示全部楼层
whydo1 发表于 2017-2-5 11:45
>>> b'\u671f\u53f7'.decode('unicode-escape')
'期号'

谢谢版主
回复 支持 反对

使用道具 举报

2

主题

6

帖子

6

积分

贫民

积分
6
aukuno  楼主| 发表于 2017-2-6 17:58:25 | 显示全部楼层
guojianye99 发表于 2017-2-6 10:18
我用eclipse把  print dt换成  print dt[0]

谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

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