python爬虫后出现字符串问题

测试用例:

[root@izwz9eitqs320brxl6owssz ~]# python
Python 2.7.5 (default, Nov  6 2016, 00:28:07)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import re
>>> html = '''<div id="songs-list">
... <h2 class="title">经典老歌</h2>
... <p class="introduction">
...  经典老歌列表
... </p>
... <ul id="list" class="list-group">
... <li data-view="2">一路上有你</li>
... <li data-view="7">
... <a href="/2.mp3" singer="任贤齐">沧海一声笑</a>
... </li>
... <li data-view="4" class="active">
... <a href="/3.mp3" singer="齐秦">往事随风</a>
... </li>
... <li data-view="6"><a href="/4.mp3" singer="beyond">=光辉岁月</a></li>
... <li data-view="5"><a href="/5.mp3" singer="陈慧琳">记事本</a>
... </li>
... <li data-view="5">
... <a href="/6.mp3" singer="邓丽君">但愿人长久</a>
... </li>
... </ul>
... </div>'''
  • 正则表达式
>>> res = re.search('<li.*?active.*?singer="(.*?)">(.*?)</a>',html,re.S)
>>> res.group()
'<li data-view="2">\xe4\xb8\x80\xe8\xb7\xaf\xe4\xb8\x8a\xe6\x9c\x89\xe4\xbd\xa0</li>\n<li data-view="7">\n<a href="/2.mp3"
singer="\xe4\xbb\xbb\xe8\xb4\xa4\xe9\xbd\x90">\xe6\xb2\xa7\xe6\xb5\xb7\xe4\xb8\x80\xe5\xa3\xb0\xe7\xac\x91</a>\n</li>\n<li data-view="4"
class="active">\n<a href="/3.mp3"
singer="\xe9\xbd\x90\xe7\xa7\xa6">\xe5\xbe\x80\xe4\xba\x8b\xe9\x9a\x8f\xe9\xa3\x8e</a>'

出现以上字符串问题
解决方法:
- 1.type()看类型

>>> type(res.group())
<type 'str'>
  • 2.
>>> print str(res.group()).decode("string_escape")
<li data-view="2">一路上有你</li>
<li data-view="7">
<a href="/2.mp3" singer="任贤齐">沧海一声笑</a>
</li>
<li data-view="4" class="active">
<a href="/3.mp3" singer="齐秦">往事随风</a>
>>> print str(res.group(1)).decode("string_escape")
齐秦
>>> print str(res.group(2)).decode("string_escape")
往事随风

测试2 找出所有的对应的歌手歌曲(findall)

>>> res = re.findall('<li.*?singer="(.*?)">(.*?)</a>',html,re.S)
>>> res
[('\xe4\xbb\xbb\xe8\xb4\xa4\xe9\xbd\x90', '\xe6\xb2\xa7\xe6\xb5\xb7\xe4\xb8\x80\xe5\xa3\xb0\xe7\xac\x91'), ('\xe9\xbd\x90\xe7\xa7\xa6', '\xe5\xbe\x80\xe4\xba\x8b\xe9\x9a\x8f\xe9\xa3\x8e'), ('beyond', '=\xe5\x85\x89\xe8\xbe\x89\xe5\xb2\x81\xe6\x9c\x88'), ('\xe9\x99\x88\xe6\x85\xa7\xe7\x90\xb3', '\xe8\xae\xb0\xe4\xba\x8b\xe6\x9c\xac'), ('\xe9\x82\x93\xe4\xb8\xbd\xe5\x90\x9b', '\xe4\xbd\x86\xe6\x84\xbf\xe4\xba\xba\xe9\x95\xbf\xe4\xb9\x85')]
>>> print str(res).decode("string_escape")
[('任贤齐', '沧海一声笑'), ('齐秦', '往事随风'), ('beyond', '=光辉岁月'), ('陈慧琳', '记事本'), ('邓丽君', '但愿人长久')]
>>> for i in res:
...   print str(i).decode('string_escape')
...
('任贤齐', '沧海一声笑')
('齐秦', '往事随风')
('beyond', '=光辉岁月')
('陈慧琳', '记事本')
('邓丽君', '但愿人长久')

python 爬虫 --字符编写问题相关推荐

  1. 机智的黄图哥----第一个python爬虫的编写(一)

    很久以前的一个夏天夜晚,我发现了一个非常碉堡的lofter阿婆主.叫wonimal,主攻人体摄影,情而不色,肥而不腻 依照我的性格必然是右键保存右键保存,但是Lofter针对我们这种黄图哥早有防范,只 ...

  2. python爬虫百度地图_零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(基础篇)...

    实现目的:爬取昆明市范围内的全部中学数据,包括名称.坐标. 先进入基础篇,本篇主要讲原理方面,并实现步骤分解,为python代码编写打基础. 因为是0基础开始,所以讲得会比较详细. 如实现目的所讲,爬 ...

  3. python爬虫 ip代理_Python 爬虫入门(二)—— IP代理使用

    上一节,大概讲述了Python 爬虫的编写流程, 从这节开始主要解决如何突破在爬取的过程中限制.比如,IP.JS.验证码等.这节主要讲利用IP代理突破. 1.关于代理 简单的说,代理就是换个身份.网络 ...

  4. python发邮件怎么用服务器每天发_神级程序员的Python爬虫!服务器定时发邮件(知识点全面)...

    很多小伙伴找我问:老铁,这些代码我写的和你一样,为什么我的不行.其实这是最基本的函数,你照葫芦画瓢是没什么多大的作用的.我不会直接告诉你答案也不是我不想告诉你,而是希望你能跟着思路,自己找到答案,这才 ...

  5. python网络爬虫的基本步骤-黑客基础 编写Python爬虫入门步骤

    原标题:黑客基础 编写Python爬虫入门步骤 信息时代,数据就是宝藏.数据的背后隐含着无穷的宝藏,这些宝藏也许就是信息量所带来的商业价值,而大数据本身也将成为桌面上的筹码. 黑客花无涯 带你走进黑客 ...

  6. python如何编写爬虫_如何实现一个Python爬虫框架

    image 这篇文章的题目有点大,但这并不是说我自觉对Python爬虫这块有多大见解,我只不过是想将自己的一些经验付诸于笔,对于如何写一个爬虫框架,我想一步一步地结合具体代码来讲述如何从零开始编写一个 ...

  7. pythonscrapy爬虫_零基础写python爬虫之使用Scrapy框架编写爬虫

    网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据.虽然我们利用一些库开发一个爬虫程序,但是使用框架可以大大提高效率,缩短开发时间.Scrapy是一个使用Python编写的,轻 ...

  8. python抓取网页电话号码_利用正则表达式编写python 爬虫,抓取网页电话号码!...

    利用正则表达式编写python 爬虫,抓取网页联系我们电话号码!这里以九奥科技(www.jiuaoo.com)为例,抓取'联系我们'里面的电话号码,并输出. #!/usrweilie/bin/pyth ...

  9. python爬虫步骤-黑客基础 编写Python爬虫入门步骤

    原标题:黑客基础 编写Python爬虫入门步骤 信息时代,数据就是宝藏.数据的背后隐含着无穷的宝藏,这些宝藏也许就是信息量所带来的商业价值,而大数据本身也将成为桌面上的筹码. 黑客花无涯 带你走进黑客 ...

最新文章

  1. python indexerror_python – “IndexError:位置索引器超出范围”,当它们明显没有时
  2. 麦司机博客项目技术选型-Java后端
  3. 【从caffe到Tensorflow 1】io 操作
  4. IE新0day漏洞(979352)(又称极光零日漏洞)***将扩散
  5. html5代码_干货篇!零基础学习HTML5要用到的6款开发工具
  6. HBase单机版安装详细步骤
  7. php foreach面试题,PHP引用理解之神奇的foreach面试题
  8. java高级语言特性,Java高级语言特性之注解
  9. 配置普通,长得丑,OPPO R11凸显OPPO创新乏力
  10. ncverilog脚本_基于脚本和test bench的ncverilog ASIC仿真实例分析
  11. Pycharm使用os.system()执行cmd代码出现乱码的问题
  12. 网络七层协议,五层协议概述
  13. 儿童机器人编程入门优先学习什么?
  14. 计算机学报latex模板\renewcommand\figurename失效
  15. SAP常用后台表总结
  16. 华为网络计算机登陆,华为路由器如何登录192.168.3.1入口设置界面
  17. 计算机睡眠和休眠的区别win10,win10睡眠和休眠有何不同_win10休眠和睡眠的区别...
  18. 【前端升全栈】 五分钟了解Node.js
  19. 学号,课程名查询成绩
  20. 政企采购的概念界定和主要方式

热门文章

  1. RTSP,Java实现简单的RTSP报文交换
  2. Sql Server 03
  3. 优动漫PAINT之绘画助手软件简介
  4. 【NLP】Python NLTK结合Stanford NLP工具包进行分词、词性标注、句法分析
  5. mysql的interval()引出的
  6. 足球比分动态 API数据接口
  7. https 单向认证和双向认证
  8. 海子 java,我把海子读给你听(二)
  9. 【TCP】TCP通信
  10. 电脑上的准考证怎样保存电子版