python 爬虫 --字符编写问题
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 爬虫 --字符编写问题相关推荐
- 机智的黄图哥----第一个python爬虫的编写(一)
很久以前的一个夏天夜晚,我发现了一个非常碉堡的lofter阿婆主.叫wonimal,主攻人体摄影,情而不色,肥而不腻 依照我的性格必然是右键保存右键保存,但是Lofter针对我们这种黄图哥早有防范,只 ...
- python爬虫百度地图_零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(基础篇)...
实现目的:爬取昆明市范围内的全部中学数据,包括名称.坐标. 先进入基础篇,本篇主要讲原理方面,并实现步骤分解,为python代码编写打基础. 因为是0基础开始,所以讲得会比较详细. 如实现目的所讲,爬 ...
- python爬虫 ip代理_Python 爬虫入门(二)—— IP代理使用
上一节,大概讲述了Python 爬虫的编写流程, 从这节开始主要解决如何突破在爬取的过程中限制.比如,IP.JS.验证码等.这节主要讲利用IP代理突破. 1.关于代理 简单的说,代理就是换个身份.网络 ...
- python发邮件怎么用服务器每天发_神级程序员的Python爬虫!服务器定时发邮件(知识点全面)...
很多小伙伴找我问:老铁,这些代码我写的和你一样,为什么我的不行.其实这是最基本的函数,你照葫芦画瓢是没什么多大的作用的.我不会直接告诉你答案也不是我不想告诉你,而是希望你能跟着思路,自己找到答案,这才 ...
- python网络爬虫的基本步骤-黑客基础 编写Python爬虫入门步骤
原标题:黑客基础 编写Python爬虫入门步骤 信息时代,数据就是宝藏.数据的背后隐含着无穷的宝藏,这些宝藏也许就是信息量所带来的商业价值,而大数据本身也将成为桌面上的筹码. 黑客花无涯 带你走进黑客 ...
- python如何编写爬虫_如何实现一个Python爬虫框架
image 这篇文章的题目有点大,但这并不是说我自觉对Python爬虫这块有多大见解,我只不过是想将自己的一些经验付诸于笔,对于如何写一个爬虫框架,我想一步一步地结合具体代码来讲述如何从零开始编写一个 ...
- pythonscrapy爬虫_零基础写python爬虫之使用Scrapy框架编写爬虫
网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据.虽然我们利用一些库开发一个爬虫程序,但是使用框架可以大大提高效率,缩短开发时间.Scrapy是一个使用Python编写的,轻 ...
- python抓取网页电话号码_利用正则表达式编写python 爬虫,抓取网页电话号码!...
利用正则表达式编写python 爬虫,抓取网页联系我们电话号码!这里以九奥科技(www.jiuaoo.com)为例,抓取'联系我们'里面的电话号码,并输出. #!/usrweilie/bin/pyth ...
- python爬虫步骤-黑客基础 编写Python爬虫入门步骤
原标题:黑客基础 编写Python爬虫入门步骤 信息时代,数据就是宝藏.数据的背后隐含着无穷的宝藏,这些宝藏也许就是信息量所带来的商业价值,而大数据本身也将成为桌面上的筹码. 黑客花无涯 带你走进黑客 ...
最新文章
- python indexerror_python – “IndexError:位置索引器超出范围”,当它们明显没有时
- 麦司机博客项目技术选型-Java后端
- 【从caffe到Tensorflow 1】io 操作
- IE新0day漏洞(979352)(又称极光零日漏洞)***将扩散
- html5代码_干货篇!零基础学习HTML5要用到的6款开发工具
- HBase单机版安装详细步骤
- php foreach面试题,PHP引用理解之神奇的foreach面试题
- java高级语言特性,Java高级语言特性之注解
- 配置普通,长得丑,OPPO R11凸显OPPO创新乏力
- ncverilog脚本_基于脚本和test bench的ncverilog ASIC仿真实例分析
- Pycharm使用os.system()执行cmd代码出现乱码的问题
- 网络七层协议,五层协议概述
- 儿童机器人编程入门优先学习什么?
- 计算机学报latex模板\renewcommand\figurename失效
- SAP常用后台表总结
- 华为网络计算机登陆,华为路由器如何登录192.168.3.1入口设置界面
- 计算机睡眠和休眠的区别win10,win10睡眠和休眠有何不同_win10休眠和睡眠的区别...
- 【前端升全栈】 五分钟了解Node.js
- 学号,课程名查询成绩
- 政企采购的概念界定和主要方式