捧腹网短笑话正则匹配-如何剔除网页源码的制表符

以捧腹网的短笑话为例,我们可以通过requests方法提取出网页的源代码,然后通过正则匹配来得到相关的短笑话

第一步,得到网页源码,使用requests的get方法,需要注意的是,网页默认编码是utf-8,我们需要指定编码格式为utf-8,才能正确显示出网页的文本信息

#-*- coding:utf-8 -*-
import requests
import re

respon=requests.get(‘https://www.pengfu.com/xiaohua_1.html?qq-pf-to=pcqq.c2c‘)
respon.encoding=‘uft-8‘
a=respon.text

print(a)

可以查看出网页的信息,截取其中部分片段如下,这里面包含我们所需要的各种信息

<h1 class="dp-b"><a href="https://www.pengfu.com/content_1825126_1.html" target="_blank">为师对你们的期望</a>
</h1>
<div class="content-img clearfix pt10 relative">
堂中,大师正在对弟子讲话:“为师为你们所起之名并非随随便便,而是为师对你们的期望,你们懂了吗?”<br />
众弟子都回答懂了,只有一名弟子默然不语,大师见状,问那名弟子道:“圆寂,你为什么不说话了?” </div>
</dd>

我们在整个网页的源码中,查找与我们目标文本临近的关键字段,这里,我们选择<div class="content-img clearfix pt10 relative">作为我们的关键字段,在其前后分别有我们所需的标题和正文

可以分析出,其前后存在许多的空格,换行和缩进,[\s\S],这里有以下解释:

\s
匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
\S
匹配任何非空白字符。等价于[^ \f\n\r\t\v]。

那么我们就可以制定正则的表达式

pattern = re.compile(r‘" target="_blank">(.+?)</a>([\s\S]*?)</h1>([\s\S]*?)<div class="content-img clearfix pt10 relative">(.+?).+?(.+?)</div>‘,re.S)
cont = re.findall(pattern,a)

第一个括号代表我们得到的标题,(.+?)代表以非贪婪模式匹配任意字符,([\s\S]*?)代表我们以非贪婪模式匹配多个制表符,至于后面的我们采用任意字符匹配处理

可以得到匹配的列表

之后可以输出cont的格式

print(cont)

得到结果如下:

[(‘水能载舟亦可赛艇‘, ‘</p>\n\t\t\t\t\t\t\t\t<div class="addbtnwraps">\n\t\t\t\t\t\t\t\t\t\t<div class="redBag" onclick="postRedBag(1825137)"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a class="plus" href="javascript:void(0);" onclick="add($(this))"  userid="9762557" style="color: #ffffff;">+ 关注</a>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<h1 class="dp-b"><a href="https://www.pengfu.com/content_1825137_1.html" target="_blank">康师傅?</a>\n                    ‘, ‘\n\t\t\t\t‘, ‘\n‘, ‘\t\t\t\t\t\t\t\t\t一名开公交车的师傅,姓康,有个妹子经常坐他开的公交车上下班。有天妹子害羞的说,康师傅。我可以泡你嘛?康师傅一愣,随后说道,看你有没有那么多水了。\t\t\t\t\t\t\t\t\t‘), (‘水能载舟亦可赛艇‘, ‘</p>\n\t\t\t\t\t\t\t\t<div class="addbtnwraps">\n\t\t\t\t\t\t\t\t\t\t<div class="redBag" onclick="postRedBag(1825136)"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a class="plus" href="javascript:void(0);" onclick="add($(this))"  userid="9762557" style="color: #ffffff;">+ 关注</a>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<h1 class="dp-b"><a href="https://www.pengfu.com/content_1825136_1.html" target="_blank">好像有哪里不对啊</a>\n                    ‘, ‘\n\t\t\t\t‘, ‘\n‘, ‘\t\t\t\t\t\t\t\t\t去同事家串门,他们小两口在吵架,我劝了几句,总算缓和了,我就打算离去,同事媳妇拿了好大一包香蕉给我带走,我客气道:别都给我啊,给王兄留点。她媳妇说到:哼,就是给畜生吃也不给他吃。我说了声谢谢就走了,现在想想怎么那么不对劲!\t\t\t\t\t\t\t\t\t‘), (‘水能载舟亦可赛艇‘, ‘</p>\n\t\t\t\t\t\t\t\t<div class="addbtnwraps">\n\t\t\t\t\t\t\t\t\t\t<div class="redBag" onclick="postRedBag(1825133)"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a class="plus" href="javascript:void(0);" onclick="add($(this))"  userid="9762557" style="color: #ffffff;">+ 关注</a>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<h1 class="dp-b"><a href="https://www.pengfu.com/content_1825133_1.html" target="_blank">陈独秀,你来讲课吧</a>\n                    ‘, ‘\n\t\t\t\t‘, ‘\n‘, ‘\t\t\t\t\t\t\t\t\t某天王思聪找到禅师,问到:“大师,好多人喊我老公,好苦恼,怎么办?”<br />\r\n禅师什么也没说,递给他一盒套套。王思聪拿着套套若有所思说:“我懂了,大师的意思是既然无法避免,就做好安全措施?”<br />\r\n禅师摇摇头,说:“老公,操我!”\t\t\t\t\t\t\t\t\t‘), (‘水能载舟亦可赛艇‘, ‘</p>\n\t\t\t\t\t\t\t\t<div class="addbtnwraps">\n\t\t\t\t\t\t\t\t\t\t<div class="redBag" onclick="postRedBag(1825132)"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a class="plus" href="javascript:void(0);" onclick="add($(this))"  userid="9762557" style="color: #ffffff;">+ 关注</a>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<h1 class="dp-b"><a href="https://www.pengfu.com/content_1825132_1.html" target="_blank">洋葱:???</a>\n                    ‘, ‘\n\t\t\t\t‘, ‘\n‘, ‘\t\t\t\t\t\t\t\t\t女朋友向我提出分手,我问她为什么?<br />\r\n她没有说话,拿出一颗洋葱,一层一层的剥开,眼中充满泪水。<br />\r\n看到这里我也很不好受:“你的意思是,相处这么久我都没有懂你层层包裹下的内心世界吗?”<br />\r\n她哽咽着说道:“不,我的意思是,我爱撕葱!!”\t\t\t\t\t\t\t\t\t‘), (‘水能载舟亦可赛艇‘, ‘</p>\n\t\t\t\t\t\t\t\t<div class="addbtnwraps">\n\t\t\t\t\t\t\t\t\t\t<div class="redBag" onclick="postRedBag(1825131)"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a class="plus" href="javascript:void(0);" onclick="add($(this))"  userid="9762557" style="color: #ffffff;">+ 关注</a>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<h1 class="dp-b"><a href="https://www.pengfu.com/content_1825131_1.html" target="_blank">小太子奶</a>\n                    ‘, ‘\n\t\t\t\t‘, ‘\n‘, ‘\t\t\t\t\t\t\t\t\t兴奋的发现,老公把我的备注名称改成了“小太子奶”。<br />\r\n晚上撒娇的说:老公,是不是想像电视里宠妃子一样爱我。<br />\r\n那货居然说:老婆,你倒着念。<br />\r\n我:。。。\t\t\t\t\t\t\t\t\t‘), (‘水能载舟亦可赛艇‘, ‘</p>\n\t\t\t\t\t\t\t\t<div class="addbtnwraps">\n\t\t\t\t\t\t\t\t\t\t<div class="redBag" onclick="postRedBag(1825130)"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a class="plus" href="javascript:void(0);" onclick="add($(this))"  userid="9762557" style="color: #ffffff;">+ 关注</a>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<h1 class="dp-b"><a href="https://www.pengfu.com/content_1825130_1.html" target="_blank">今晚不杀鱼了杀你</a>\n                    ‘, ‘\n\t\t\t\t‘, ‘\n‘, ‘\t\t\t\t\t\t\t\t\t老婆:让你杀个鱼这么费劲!你跟笨蛋什么关系?<br />\r\n老公:夫妻关系……\t\t\t\t\t\t\t\t\t‘), (‘水能载舟亦可赛艇‘, ‘</p>\n\t\t\t\t\t\t\t\t<div class="addbtnwraps">\n\t\t\t\t\t\t\t\t\t\t<div class="redBag" onclick="postRedBag(1825129)"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a class="plus" href="javascript:void(0);" onclick="add($(this))"  userid="9762557" style="color: #ffffff;">+ 关注</a>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<h1 class="dp-b"><a href="https://www.pengfu.com/content_1825129_1.html" target="_blank">令人窒息的操作</a>\n                    ‘, ‘\n\t\t\t\t‘, ‘\n‘, ‘\t\t\t\t\t\t\t\t\t老公:我伸手扯下她薄如蝉翼的衣服,伸出舌头舔了舔她嫩出水的脸颊,顺势吻上了她的嘴唇,用力吮吸着...<br />\r\n媳妇伸手就是一掌:MD,吃个葡萄你至于说的这么销魂吗?\t\t\t\t\t\t\t\t\t‘), (‘水能载舟亦可赛艇‘, ‘</p>\n\t\t\t\t\t\t\t\t<div class="addbtnwraps">\n\t\t\t\t\t\t\t\t\t\t<div class="redBag" onclick="postRedBag(1825128)"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a class="plus" href="javascript:void(0);" onclick="add($(this))"  userid="9762557" style="color: #ffffff;">+ 关注</a>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<h1 class="dp-b"><a href="https://www.pengfu.com/content_1825128_1.html" target="_blank">最后三天让你知道我的厉害</a>\n                    ‘, ‘\n\t\t\t\t‘, ‘\n‘, ‘\t\t\t\t\t\t\t\t\t作业妩媚地躺在我的床上,娇媚的唇角轻启:“官人,这可都一个月了,你怎么还不来碰碰人家。”<br />\r\n这作业也不愧是美人,声音微颤最后声线上扬了三度,像羽毛似的撩的人心痒痒,我一巴掌糊它脸上。“最后三天让你知道我的厉害。”\t\t\t\t\t\t\t\t\t‘), (‘水能载舟亦可赛艇‘, ‘</p>\n\t\t\t\t\t\t\t\t<div class="addbtnwraps">\n\t\t\t\t\t\t\t\t\t\t<div class="redBag" onclick="postRedBag(1825127)"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a class="plus" href="javascript:void(0);" onclick="add($(this))"  userid="9762557" style="color: #ffffff;">+ 关注</a>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<h1 class="dp-b"><a href="https://www.pengfu.com/content_1825127_1.html" target="_blank">我要小解</a>\n                    ‘, ‘\n\t\t\t\t‘, ‘\n‘, ‘\t\t\t\t\t\t\t\t\t某日连续上三堂枯燥的国文课,老师一直不肯下课,<br />\r\n同桌终于忍不住大喊:“我要小解。”<br />\r\n老师大怒:“上我的课竟敢不知羞耻的要小姐。”\t\t\t\t\t\t\t\t\t‘), (‘水能载舟亦可赛艇‘, ‘</p>\n\t\t\t\t\t\t\t\t<div class="addbtnwraps">\n\t\t\t\t\t\t\t\t\t\t<div class="redBag" onclick="postRedBag(1825126)"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a class="plus" href="javascript:void(0);" onclick="add($(this))"  userid="9762557" style="color: #ffffff;">+ 关注</a>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<h1 class="dp-b"><a href="https://www.pengfu.com/content_1825126_1.html" target="_blank">为师对你们的期望</a>\n                    ‘, ‘\n\t\t\t\t‘, ‘\n‘, ‘\t\t\t\t\t\t\t\t\t堂中,大师正在对弟子讲话:“为师为你们所起之名并非随随便便,而是为师对你们的期望,你们懂了吗?”<br />\r\n众弟子都回答懂了,只有一名弟子默然不语,大师见状,问那名弟子道:“圆寂,你为什么不说话了?”\t\t\t\t\t\t\t\t\t‘)]

观察出,列表中的每个元素都是一个元组,每个元组中都含有若个字符串,第一个字符串是作者,第二个字符串中包含我们所需的标题,使用正则进一步提取,

pattern = re.compile(‘target="_blank">(.+?)</a>‘,re.S)
title=re.search(pattern,item[1]).group(1)

正文处于第五个字符串中,包含正文,正文中,包含很多空格和换行,可以通过strip()函数处理,但输出之后发现,仍存在一些<br/>,这个属于html的特殊用法,用作换行,可以使用replace函数处理

content=item[4].replace(‘<br />‘,‘‘)
print(‘正文:%s‘%content.strip())

最后得到所有的处理代码如下(注意缩进):
#-*- coding:utf-8 -*-
import requests
import re

respon=requests.get(‘https://www.pengfu.com/xiaohua_1.html?qq-pf-to=pcqq.c2c‘)
respon.encoding=‘uft-8‘
a=respon.text
pattern = re.compile(r‘" target="_blank">(.+?)</a>([\s\S]*?)</h1>([\s\S]*?)<div class="content-img clearfix pt10 relative">(.+?).+?(.+?)</div>‘,re.S)
cont = re.findall(pattern,a)
for item in cont:
print(‘*‘*100)
print(‘作者:%s‘%item[0])
pattern = re.compile(‘target="_blank">(.+?)</a>‘,re.S)
title=re.search(pattern,item[1]).group(1)
print(‘标题:%s‘%title)
content=item[4].replace(‘<br />‘,‘‘)
print(‘正文:%s‘%content.strip())

运行输出的结果如下:

****************************************************************************************************
作者:水能载舟亦可赛艇
标题:康师傅?
正文:一名开公交车的师傅,姓康,有个妹子经常坐他开的公交车上下班。有天妹子害羞的说,康师傅。我可以泡你嘛?康师傅一愣,随后说道,看你有没有那么多水了。
****************************************************************************************************
作者:水能载舟亦可赛艇
标题:好像有哪里不对啊
正文:去同事家串门,他们小两口在吵架,我劝了几句,总算缓和了,我就打算离去,同事媳妇拿了好大一包香蕉给我带走,我客气道:别都给我啊,给王兄留点。她媳妇说到:哼,就是给畜生吃也不给他吃。我说了声谢谢就走了,现在想想怎么那么不对劲!
****************************************************************************************************
作者:水能载舟亦可赛艇
标题:陈独秀,你来讲课吧
正文:某天王思聪找到禅师,问到:“大师,好多人喊我老公,好苦恼,怎么办?”

禅师什么也没说,递给他一盒套套。王思聪拿着套套若有所思说:“我懂了,大师的意思是既然无法避免,就做好安全措施?”

禅师摇摇头,说:“老公,操我!”
****************************************************************************************************
作者:水能载舟亦可赛艇
标题:洋葱:???
正文:女朋友向我提出分手,我问她为什么?

她没有说话,拿出一颗洋葱,一层一层的剥开,眼中充满泪水。

看到这里我也很不好受:“你的意思是,相处这么久我都没有懂你层层包裹下的内心世界吗?”

她哽咽着说道:“不,我的意思是,我爱撕葱!!”
****************************************************************************************************
作者:水能载舟亦可赛艇
标题:小太子奶
正文:兴奋的发现,老公把我的备注名称改成了“小太子奶”。

晚上撒娇的说:老公,是不是想像电视里宠妃子一样爱我。

那货居然说:老婆,你倒着念。

我:。。。
****************************************************************************************************
作者:水能载舟亦可赛艇
标题:今晚不杀鱼了杀你
正文:老婆:让你杀个鱼这么费劲!你跟笨蛋什么关系?

老公:夫妻关系……
****************************************************************************************************
作者:水能载舟亦可赛艇
标题:令人窒息的操作
正文:老公:我伸手扯下她薄如蝉翼的衣服,伸出舌头舔了舔她嫩出水的脸颊,顺势吻上了她的嘴唇,用力吮吸着...

媳妇伸手就是一掌:MD,吃个葡萄你至于说的这么销魂吗?
****************************************************************************************************
作者:水能载舟亦可赛艇
标题:最后三天让你知道我的厉害
正文:作业妩媚地躺在我的床上,娇媚的唇角轻启:“官人,这可都一个月了,你怎么还不来碰碰人家。”

这作业也不愧是美人,声音微颤最后声线上扬了三度,像羽毛似的撩的人心痒痒,我一巴掌糊它脸上。“最后三天让你知道我的厉害。”
****************************************************************************************************
作者:水能载舟亦可赛艇
标题:我要小解
正文:某日连续上三堂枯燥的国文课,老师一直不肯下课,

同桌终于忍不住大喊:“我要小解。”

老师大怒:“上我的课竟敢不知羞耻的要小姐。”
****************************************************************************************************
作者:水能载舟亦可赛艇
标题:为师对你们的期望
正文:堂中,大师正在对弟子讲话:“为师为你们所起之名并非随随便便,而是为师对你们的期望,你们懂了吗?”

众弟子都回答懂了,只有一名弟子默然不语,大师见状,问那名弟子道:“圆寂,你为什么不说话了?”
[Finished in 0.9s]

原文地址:https://www.cnblogs.com/aaron2932/p/9044986.html

时间: 2024-10-08 22:08:39

捧腹网短笑话正则匹配-如何剔除网页源码的制表符的相关文章

下载捧腹网图片

# 锁薇,捧腹网 import urllib.request, re# , sys # 获取网页源码 def page(pg): url = 'https://www.pengfu.com/index_%s.html'%pg # 页面是utf8编码,所有解码成unicode html = urllib.request.urlopen(url).read().decode('utf8') # <meta http-equiv="Content-Type" content="

Python网络爬虫:空姐网、糗百、xxx结果图与源码

如前面所述,我们上手写了空姐网爬虫,糗百爬虫,先放一下传送门: Python网络爬虫requests.bs4爬取空姐网图片Python爬虫框架Scrapy之爬取糗事百科大量段子数据Python爬虫框架Scrapy架构和爬取糗事百科段子结果 还有Python爬虫框架Scrapy解密的文章:zzdaiy2019.cn Python爬虫框架之Scrapy详解 这几篇文章都是即时编写代码并且发布文章的,代码百分百能运行起来. 接下来,我们看一下这几个爬虫运行的结果与源码. 结果: 糗百段子数据结果 糗百

PHP伪造referer突破网盘禁止外链(附115源码)

新建一个文件file.php.后面的参数就是需要伪造referfer的目标地址吧.如:file.php/http://www.xxx.xxx/xxx.mp3 复制内容到剪贴板 代码: <?$url=str_replace('/file.php/','',$_SERVER["REQUEST_URI"]);//得出需要转换的网址.这里我就偷懒,不做安全检测了,需要的自己加上去$downfile=str_replace(" ","%20",$ur

C#实现联通短信Sgip协议程序源码

此程序为中国联通Sgip协议程序接口,适合在中国联通申请了短信发送端口的公司使用. 短信群发已经成为现在软件系统.网络营销等必不可少的应用工具.可应用在短信验证.信息群发.游戏虚拟商品购买.事件提醒.送祝福等方面. 本程序功能包括: 1.支持中国联通Sgip1.2协议: 2.支持一般的短信发送.上行短信接收.状态报告: 3.支持长短信: 4.支持普通手机号和物联网卡: 5.全套C#.Net源码 程序适用于Sgip 1.2协议,可用.Net任何版本编译. DLL版:短信接口程序DLL源码,调用此D

新版香港赛马开奖网带视频,后台可控,大圣源码论坛独家分享

新版香港赛马开奖网带视频后台可控,大圣源码论坛独家分享 联系Q:3266397597 测试源码来源:mostsheng.com 测试源码下载地址:http://mostsheng.com/thread-263-1-1.html 原文地址:https://www.cnblogs.com/XGX1986/p/8549604.html

关于Boost,C Regex对短目标字符串正则匹配的性能分析

昨天对长目标字符串下的各种正则匹配库性能进行了总结,得出结论是Boost regex性能最佳.今天将其应用到项目当中,果不其然,长字符串匹配带来的性能损失基本没有了,当然,目前规模并不算太大,但是在可预计规模内Boost可以完全达到要求. 不过有一点,在Boost,C同时去除长字符串匹配的影响后,剩下都是短字符串匹配,发现Boost比C好的并不是好很多,例如10000+次短字符匹配中,其中包含匹配成功和不成功的,Boost regex+系统其他模块用时130ms左右,而C regex+系统其他模

FPGA做正则匹配和网络安全,究竟有多大的优势?

FPGA做正则匹配和网络安全,究竟有多大的优势? 西电通院专用集成电路课程学习 云导播 网络安全已经被提升为国家战略的高度,高校里面的新增的一级学科,去年9月份,中央网信办.教育部公布了“一流网络安全学院建设示范项目高校”名单.但网络安全的范围实在太大,平常所说的黑客.网络病毒等软件.操作系统.固件级别的网络攻击或防范办法仅仅是常见的传统网络安全范畴,本文所说的是基于硬件级别的网络安全方法,比较学术的分类有可信芯片研究.网络安全防护的硬件实现等.硬件领域网络安全的研究随着近几年挖矿芯片.AI芯片

php正则匹配用户名必须包含字母和数字且大于6位

php正则匹配用户名必须包含字母和数字且大于6位 UEditor 1.4.3版本中去掉本地自动保存功能 右键菜单没有新建文本文档txt 常见HTTP错误代码大全 http常见状态码 eclipse内存溢出错误 为什么井盖是圆的?--揭开面试题的神秘面目! Linux Centos 6.6搭建SFTP服务器 密码强度检测 JS判断检测用户输入密码强度代码 对程序员来说,提高薪水最好的建议是什么? CSS3仿淘宝右侧固定导航悬浮层 jQuery仿淘宝网登录拖动滑块验证码代码 jQuery单击div更

利用Python正则匹配中文——爬取校园网公告栏中感兴趣的内容

写这个程序是因为校园网公告栏时不时会有学术报告,讲座之类的信息发布,但这类信息往往发布在讲座的前一天,以至于丢失很多重要消息.同时公告栏里也会发布一些跟学生无关的内容,比如工会主席会议啥的. 主要遇到的困难时对中文的正则匹配问题.(比如通过第一次正则可以提取到一个页面内的所有中文标题,第二次正则从这些中文标题中将能匹配上“报告”两个字的对象添加到结果list内) 学校公告页面是gb2312编码.我使用的方式是,整个工程使用utf-8编码,将需要匹配的关键字转换成utf-8编码格式,使用正则匹配u