爬取嗅事百科的段子
爬取正文(contents)时,需要转码。
import requests #from bs4 import BeautifulSoup import time import re headers={ #'User-Agent':'Nokia6600/1.0 (3.42.1) SymbianOS/7.0s Series60/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0' 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36' } info_lists=[] def judgment_sex(class_name): if class_name=='womenIcon': return '女' else : return '男' #f=open('C:/Users/Administrator/Desktop/lianxi/qiushi.text','a+') def get_info(url): res=requests.get(url) #gbkTypeStr = res.text.encode("GBK", "ignore") #gbkTypeStr = res.text.encode("GB18030") #print(gbkTypeStr) #print(res.text) ids=re.findall('<h2>(.*?)</h2>',res.text,re.S) levels=re.findall('<div class="articleGender \D+Icon">(.*?)</div>',res.text,re.S) sexs=re.findall('<div class="articleGender (.*?)">',res.text,re.S) contents=re.findall('<div class="content">.*?<span>(.*?)</span>',res.content.decode('utf-8'),re.S) laughs=re.findall('<i class="number">(\d+)</i>',res.text,re.S) comments=re.findall('<i class="number">(\d+)</i> 评论',res.text,re.S) #print(ids) #print(levels) #print(sexs) print(contents) #print(laughs) #print(comments) for id,level,sex,content,laugh,comment in zip(ids,levels,sexs,contents,laughs,comments): info={ 'id':id, 'level':level, 'sex':judgment_sex(sex), 'content':content, 'laugh':laugh, 'comment':comment } #print("66666666666666666666666666666666666666666666666666666666666") info_lists.append(info) #print(info) if __name__=='__main__': urls=['https://www.qiushibaike.com/text/page/{}/'.format(str(i)) for i in range(1,2)] for url in urls: get_info(url) time.sleep(2) for info_list in info_lists: #f=open('C:/Users/Administrator/Desktop/lianxi/qiushi.txt','a+') f=open('C:/Users/Administrator/Desktop/lianxi/qiushi.text','a+') try: f.write("姓名:"+info_list['id']+'\n') f.write("等级:"+info_list['level']+'\n') f.write("性别:"+info_list['sex']+'\n') f.write(info_list['content']+'\n') f.write("点赞:"+info_list['laugh']+'\n') f.write("评论数:"+info_list['comment']+'\n\n') f.close() except UnicodeEncodeError: f.write("失败")
结果:
姓名:
niangaoni…等级:23
性别:男
刚才看了一篇叫《抖音,快手正在毁掉我们的下一代!!》的文章,我才知道现在的00后,10后后那么逆天!我一个95后经常被他们喊着大叔的人,真的是经常被他们一些行为和语言所震惊!我从来不反感任何一个app,我只是反感一些传播低俗的内容,炫富!秀恩爱!早恋!恶搞在一些短视频上比比皆是,真的是对现在的未成年人影响非常之大!身为单身狗的我真的经常被无形之中伤害!不仅被同龄人问起,更有甚者被小学生所歧视!那天我看见一男一女两个小学生在秀恩爱,我问他们“你们搞对象家长知道吗?”然后那个男同学说“你这么大了还没
…点赞:467
评论数:31姓名:
好吃的焦糖饼干…等级:84
性别:女
早上,我问老爸:现在骗子多,你知道啥是套路吗?老爸摇了摇头!<br/>我笑着说:爸,你给我50块,我告诉你。<br/>没想到,老爸拿出100说:我没50,你给我发50的红包,这钱归你!<br/>老爸领了红包,我拿过100。正笑老爸傻,就听他说:哈,贪心的人才会被套路!<br/>我仔细一看,那100是假的!
点赞:31
评论数:35姓名:
0巭孬嫑昆0等级:0
性别:男
和老婆去旅游,走过一条独木桥的时候,老婆不小心掉进了河里。过了一会,一个自称河神的家伙冒了出来,举着一头母猪问我“这是你的老婆吗?” “不是,这身材根本不像!”河神回去又扛了一只河马问我“那这是你的老婆吗?” “也不是。”河神无奈地说“那我只能帮你到这了,还有一只你自己下来扛吧!”
点赞:923
评论数:43姓名:
左二女人等级:0
性别:男
路上看到两个喝醉的中年男人靠在垃圾桶边上,一个男人抱着垃圾桶使劲吐,另外一个男人眯着眼,用一种特语重心长的样子对着边上垃圾桶盖说,吐嘛吐嘛,吐出来就舒服了,重点来了,他还轻轻的拍打着垃圾盖[哀怨][哀怨][哀怨]
点赞:35
评论数:7姓名:
城城,止于终老等级:98
性别:女
那时,代先生刚参加工作不久的一个晚上,我刚好在生理期(我生理期肚子超级痛),晚上他出去和同事喝酒去了,我就在家里睡下了,后来,我接到他同事电话,叫我出去接他,他喝醉了。<br/>当我出去看见他时,他烂醉如泥,已经无法行走,于是我只好拜托他们同事把他扛到楼上,把他安置在床上。<br/>送走他同事后,我其实挺生气,我生理期,不知道早点回来照顾我,还出去喝酒,而且还喝得不省人事!气归气,没办法,只好照顾他。<br/>开始端水给他洗手洗脸,擦身体(是个夏天,不擦洗一下,会不舒服)。做完这些,已经累到瘫软,浑身是汗。我想你们应该
…点赞:4331
评论数:14姓名:
空穴来鸟等级:28
性别:女
说个男闺蜜的事,他大学毕业后,自己弄了一个养猪场。<br/>这两年生意也不太顺畅。<br/>昨天晚上打电话给我,说喝多了打不开门了,我自然得去看一下了。<br/>我开车去他家没有发现人,在附近找了一圈,最后发现他趴在猪圈门口,正跟猪仔聊着天干杯呢……
点赞:43
评论数:38姓名:
段子傻妞也等级:98
性别:女
跟女朋友在酒楼大厅吃饭,来了个抱电吉他的小年轻,拖着音响,挨个问每一桌要不要点首曲子,每桌都不耐烦的将他赶走。最后他来到我们这桌,我给钱点了一首,歌手开心的扭开音响,准备开唱。大厅里的其他客人也都扭过头来,想看表演,女朋友唰的搂着碗筷起身,告诉歌手,走,咱去包间小声唱,不给他们听。
点赞:891
评论数:34姓名:
该用户已渡劫升仙等级:99
性别:男
商场看到一对小情侣吵架,女孩很生气,哭着对男孩喊:你这个大骗子!!本来男孩也是一副生气的样子,听见女孩这样说,一副心疼的表情,抬手抹去女孩脸上的泪水,轻轻的说:吵架归吵架,别骂人啊,你才大屁眼子!
点赞:7
评论数:21姓名:
王云(笨笨)等级:25
性别:女
我问妈妈:都说酸儿辣女,妈妈,你怀我的时候,是不是特喜欢吃辣?<br/>妈妈说:我怀你的时候就喜欢吃酸辣粉,所以你现在跟假小子似的,没人要你!
点赞:241
评论数:23姓名:
叫我赵姑娘等级:25
性别:女
我对公司里的男生真是服了,他们是我见过最干净的人 因为每次遇到任何问题他们都推的一干二净,平时还跟妹子抢吃的,哎…单身也不是没有道理的…[生气了][生气了][生气了][生气了]
点赞:14
评论数:17姓名:
战狼功能饮料等级:48
性别:男
分享一个真实的糗事,当初来外地打工,身上已经没有钱了,迫于无奈,翻起了存折,看到存折还剩20元钱,没有办法,拿着存折去银行,对柜台里面的工作人员说:“麻烦你,取20”工作人员对我说了一句非常让我尴尬的话,她说:”对不起,取20万提前预约”<br/>可能没想到我会取20元钱,以为我把万省略了,但这就是一个在外地打工人的心酸历程,也是我的真实经历
点赞:1705
评论数:38姓名:
花七七…等级:28
性别:男
在我小学一年级时代,总喜欢强迫性的紧紧的抱一个圆圆软软的小萝莉。<br/>后来她爆发了,找她太奶奶拄着拐杖来教训我,说要吃了我。<br/>吓得我躲门角后不敢出来,连续几天都拉青屎,估计胆都吓破了。
点赞:38
评论数:11姓名:
花七七…等级:28
性别:男
昨天中午在饭堂,刚出差回来的老张端着餐盘过来,坐在我和老黄对面,开口就问:“听说上星期有俩傻逼在这打架,被老板在大会上批评了,知道是那俩傻逼么?”<br/>于是今天公司召开紧急大会,批评了三个在饭堂打架的傻逼。
点赞:4595
评论数:76姓名:
夕冬温存等级:29
性别:女
儿子淘气,我揍了他,他赌气要离家出走,我和老公都不阻止他,结果他尴尬的站在门口。<br/> 最后这小子咬咬牙一跺脚,跑回自己屋里捧着存钱罐出来了,对他爸爸说道:“跟我一起走,咱逛窑子去。”
点赞:34
评论数:63姓名:
我被苍井空包养了等级:21
性别:男
欲成大事者,心肠一定要狠。想当年我们省里一包工头,他儿子开车把市长儿媳妇给撞流产了。这就相当于把市长的孙子或者孙女给弄死了。出了这种事情,市长能够饶过他们家。为了平息市长的怒火。这个包工头当着所有人的面儿,把他儿子腿给打断了。他就这一个独子,也不能把儿子给弄死。有钱人不缺媳妇儿,大不了再娶个。从此以后,这小子把他爸恨死了。有个富家子弟,上学期间和某个官二代打架,他爸替他出头,找人把那官二代揍一顿。结果他爸的公司就黄了。
点赞:3065
评论数:8姓名:
洛源2等级:23
性别:女
闺蜜拉着我去泡凉水澡,说凉水澡可以增强免疫力身体更暖和,我果断跟她试了一下,你还别说啊!贼管用,昨晚体温36°,今天就39.5°了!不说了,点滴可以不输,闺蜜必须打死!
点赞:21
评论数:32姓名:
偷惢等级:28
性别:女
想挣个零花钱,就进点小百货在夜市摆地摊,刚摆上就看到城 管在街头晃悠,溜过去看看啥情况,别在是过来收东西的。<br/>观察一会儿,发现城 管只是来逛着玩的,这下安心了。回到我的摊子一看,卧槽,摆好的东西被哪个天 杀的给拿完了!
点赞:1403
评论数:12姓名:
菜兜兜。等级:12
性别:女
最近在学车背景咯咯咯!<br/>驾校教练对笨得属猪的我说:“你家有车嘛?回家多练练!!!”<br/>今天我又去学车高兴地对教练说:“我最近有练车,我在绝地里开得可好了。还撞死了好多人。”
点赞:23
评论数:9姓名:
艾玛*^o^*ZW…等级:24
性别:女
审讯室里,我一脸认真无可奈何地说:“ 警察同志 ,你能不能相信我?我真没偷手机,是个误会,我真的是好人。”看着我真诚的面孔,警察冷笑道:“那你怎么去证明?”,我没办法思索了一会,给小段打过去一个电话:“喂~,是我。”电话那头停顿了五秒钟传过来他的声音:“…… 我拜托 !我知道你是个好人,但我们真的真的真的不合适。”
点赞:421
评论数:12姓名:
魅影迷离等级:29
性别:男
今天和一妹子相亲,我早早来到西餐厅,不一会,漂亮的妹子性感妖娆的过来了。然后老剧情重演……<br/>妹子:有车么?<br/>我:有…<br/>妹子:有房么?<br/>我:有…<br/>妹子还想再问。。。<br/>我:18公分…<br/>妹子很满意,约好开房!<br/>宾馆一番云雨后,妹子娇填道:"你个骗子,哪有18公分?"<br/>我笑道:"局部地区量起刚好18公分"<br/>妹子:"那你的是什么车呀?"<br/>我:"刚才的老汉推车。"<br/>妹子怒道:"…房呢?"<br/>我:"现在
…点赞:17
评论数:8姓名:
吃了两碗又盛等级:39
性别:男
媳妇要去学瑜伽,我觉得这种有氧锻炼挺好的,就支持她去了。一周后媳妇突然宣布不学了,我问:是不是太辛苦了坚持不下来?<br/>媳妇摇摇头说:辛苦我倒不怕,可是教练是个平胸妹子,我担心练得太久,胸会跟她一样平。。。。
点赞:1416
评论数:16姓名:
醉酒舞剑砍疯子.等级:13
性别:女
办公室最近总是丢零食,一直也没抓到这个贼人!<br/>经理让我去送资料,等着老总签字,发现房间里有些暗,就想去打开灯,突然脚下一崴,我忙抓住旁边物品借力稳住,没想到一把把窗帘扯了下来,,,然后看见窗帘后面一大包各样零食,正是大家丢的,再一看老总一脸黑线:“那个,我是看你们平时零食吃多了,都胖,不好找对象!就先帮你们收了!”<br/>额!,,,
点赞:38
评论数:24姓名:
墨城烟柳画桥长枫等级:24
性别:男
老婆回娘家了,第二天中午给我发微信:“老公,你在干嘛呀?”<br/>我回:“在工地干活呢!累成狗,你什么时候回来?”<br/>老婆:“我已经回来了,就在网吧门口,刚才你那个走位太漂亮了。”<br/>纳尼……
点赞:1701
评论数:18姓名:
吃了两碗又盛等级:39
性别:男
昨晚陪儿子学乒乓球,有的学员没去,教练比较闲,叫我过去打两拍。我当初也算练过,打和平球是没问题的。<br/>你来我往地打了几个回合之后,对面球过来,高度,角度刚刚好,勾起了我扣杀的欲望,我侧身,发力,,,可惜球拍有些没压住,球飞了,打教练脑门上了。。<br/>教练揉着脑门说:真不愧是你儿子的爹,你儿子也总往我头上打!
点赞:11
评论数:17姓名:
崛起的,新贵族等级:27
性别:男
我儿子四岁多,幼儿园亲子活动我们去参加,一帮孩子都在滚轮胎玩游戏弄的不亦乐乎的,我儿子就比较有特色了,带着个女孩子在窗下面亲吻拥抱,女孩子奶奶脸都绿了,我们也不好说什么,只是后来亲子活动结束以后我让他以后不能这样了,他不,非不同意,说他喜欢那个女孩。<br/><br/>过了一个月有天我去接他放学,他一直都闷闷不乐的,说那个女生不理他了,问我要怎么办,我说我不知道呀。一路上他都在自言自语的我会想办法的我能想到办法的。
点赞:12779
评论数:4
正文段子没有办法爬取,其他的数据可以爬取,猜想被加密,或者编码方式与re模块不同
后续计划采用其他方法试试
import requests #from bs4 import BeautifulSoup import time import re headers={ #'User-Agent':'Nokia6600/1.0 (3.42.1) SymbianOS/7.0s Series60/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0' 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36' } info_lists=[] def judgment_sex(class_name): if class_name=='womenIcon': return '女' else : return '男' #f=open('C:/Users/Administrator/Desktop/lianxi/qiushi.text','a+') def get_info(url): res=requests.get(url) #gbkTypeStr = res.text.encode("GBK", "ignore") #gbkTypeStr = res.text.encode("GB18030") #print(gbkTypeStr) #print(res.text) ids=re.findall('<h2>(.*?)</h2>',res.text,re.S) levels=re.findall('<div class="articleGender \D+Icon">(.*?)</div>',res.text,re.S) sexs=re.findall('<div class="articleGender (.*?)">',res.text,re.S) contents=re.findall('<div class="content"><span>(.*?)</span></div>',res.text,re.S) laughs=re.findall('<i class="number">(\d+)</i>',res.text,re.S) comments=re.findall('<i class="number">(\d+)</i> 评论',res.text,re.S) print(ids) #print(levels) #print(sexs) print(contents) #print(laughs) #print(comments) for id,level,sex,laugh,comment in zip(ids,levels,sexs,laughs,comments): info={ 'id':id, 'level':level, 'sex':judgment_sex(sex), #'content':content, 'laugh':laugh, 'comment':comment } print("66666666666666666666666666666666666666666666666666666666666") info_lists.append(info) #print(info) if __name__=='__main__': urls=['https://www.qiushibaike.com/text/page/{}/'.format(str(i)) for i in range(1,2)] for url in urls: get_info(url) time.sleep(2) for info_list in info_lists: #f=open('C:/Users/Administrator/Desktop/lianxi/qiushi.txt','a+') f=open('C:/Users/Administrator/Desktop/lianxi/qiushi.text','a+') try: f.write(info_list['id']+'\n') f.write(info_list['level']+'\n') f.write(info_list['sex']+'\n') #f.write(info_list['content']+'\n') f.write(info_list['laugh']+'\n') f.write(info_list['comment']+'\n\n') f.close() except UnicodeEncodeError: f.write("失败")