「python爬虫之路day9」:实战之使用正则表达式爬取抓狂网,古诗文网信息

这次实战又学习了一个新的函数zip
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]
zipped = zip(a,b) # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]

zip(a,c) # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]

zip(*zipped) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]

古诗文网
代码如下:

import requests
import re
def parse_page(url):
    headers={"user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64)    AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36"}
    response=requests.get(url,headers=headers)
    text=response.text
    title=re.findall(r'<div class="yizhu">.*?<b>(.*?)</b>',text,re.DOTALL)#re.DOTALL可以让*匹配换行符
    dynasty=re.findall(r'<p class="source"><a.*?>(.*?)</a>',text,re.DOTALL)
    poet=re.findall(r'<p class="source"><a.*?>.*?<a.*?>(.*?)</a>',text,re.DOTALL)
    poems_tags=re.findall(r'<div class="contson".*?>(.*?)</div>',text,re.DOTALL)
    poems=[]
    for z in poems_tags:
        x=re.sub("<.*?>","",z)
        poems.append(x.strip())

    result=[]
    for value in zip(title,dynasty,poet,poems):
        title, dynasty, poet, poems=value
        ancientsongs={"title":title,"dynasty":dynasty,"poet":poet,"poems":poems}
        result.append(ancientsongs)
    print(result)

def main():
    url="https://www.gushiwen.org/default_1.aspx"
    for x in range(1,11):
        url="https://www.gushiwen.org/default_%s.aspx"%x
        parse_page(url)
if __name__ == '__main__':
    main()

结果如下:
C:\python38\python.exe “C:/python38/new project/2rd/day9.py”
[{‘title’: ‘古宴曲’, ‘dynasty’: ‘唐代’, ‘poet’: ‘于濆’, ‘poems’: ‘雉扇合蓬莱,朝车回紫陌。重门集嘶马,言宴金张宅。燕娥奉卮酒,低鬟若无力。十户手胼胝,凤凰钗一只。高楼齐下视,日照罗衣色。笑指负薪人,不信生中国。’}, {‘title’: ‘折桂令·中秋’, ‘dynasty’: ‘元代’, ‘poet’: ‘张养浩’, ‘poems’: ‘一轮飞镜谁磨?照彻乾坤,印透山河。玉露泠泠,洗秋空银汉无波,比常夜清光更多,尽无碍桂影婆娑。老子高歌,为问嫦娥,良夜恹恹,不醉如何?’},
[{‘title’: ‘浣溪沙·相见休言有泪珠’, ‘dynasty’: ‘五代’, ‘poet’: ‘欧阳炯’, ‘poems’: ‘相见休言有泪珠,酒阑重得叙欢娱,凤屏鸳枕宿金铺。兰麝细香闻喘息,绮罗纤缕见肌肤,此时还恨薄情无?’}, {‘title’: ‘春寒’, ‘dynasty’: ‘宋代’, ‘poet’: ‘陈与义’, ‘poems’: ‘二月巴陵日日风,春寒未了怯园公。海棠不惜胭脂色,独立蒙蒙细雨中。’}, {‘title’: ‘书边事’, ‘dynasty’: ‘唐代’, ‘poet’: ‘张乔’, ‘poems’: ‘调角断清秋,征人倚戍楼。春风对青冢,白日落梁州。大漠无兵阻,穷边有客游。蕃情似此水,长愿向南流。’}, {‘title’: ‘东还’, ‘dynasty’: ‘唐代’, ‘poet’: ‘李商隐’, ‘poems’: ‘自有仙才自不知,十年长梦采华芝。 秋风动地黄云暮,归去嵩阳寻旧师。’}, {‘title’: ‘安公子·远岸收残雨’, ‘dynasty’: ‘宋代’, ‘poet’: ‘柳永’, ‘poems’: ‘远岸收残雨。雨残稍觉江天暮。拾翠汀洲人寂静,立双双鸥鹭。望几点、渔灯隐映蒹葭浦。停画桡、两两舟人语。道去程今夜,遥指前村烟树。游宦成羁旅。短樯吟倚闲凝伫。万水千山迷远近,想乡关何处。自别后、风亭月榭孤欢聚。刚断肠、惹得离情苦。听杜宇声声,劝人不如归去。’},删除部分结果** {‘title’: ‘执竞’, ‘dynasty’: ‘先秦’, ‘poet’: ‘佚名’, ‘poems’: ‘执竞武王,无竞维烈。不显成康,上帝是皇。自彼成康,奄有四方,斤斤其明。\n钟鼓喤喤,磬莞将将,降福穰穰。降福简简,威仪反反。既醉既饱,福禄来反。’}, {‘title’: ‘知音者诚希’, ‘dynasty’: ‘唐代’, ‘poet’: ‘韩愈’, ‘poems’: ‘知音者诚希,念子不能别。行行天未晓,携酒踏明月。’}, {‘title’: ‘惠崇春江晚景二首 / 惠崇春江晓景二首’, ‘dynasty’: ‘宋代’, ‘poet’: ‘苏轼’, ‘poems’: ‘竹外桃花三两枝,春江水暖鸭先知。蒌蒿满地芦芽短,正是河豚欲上时。\n两两归鸿欲破群,依依还似北归人。遥知朔漠多风雪,更待江南半月春。’}, {‘title’: ‘伤心行’, ‘dynasty’: ‘唐代’, ‘poet’: ‘李贺’, ‘poems’: ‘咽咽学楚吟,病骨伤幽素。秋姿白发生,木叶啼风雨。 灯青兰膏歇,落照飞蛾舞。古壁生凝尘,羁魂梦中语。’}, {‘title’: ‘游岳麓寺’, ‘dynasty’: ‘明代’, ‘poet’: ‘李东阳’, ‘poems’: ‘危峰高瞰楚江干,路在羊肠第几盘?万树松杉双径合,四山风雨一僧寒。平沙浅草连天远,落日孤城隔水看。蓟北湘南俱入眼,鹧鸪声里独凭栏。’}]

Process finished with exit code 0

抓狂网:

import re
import requests


def parse_page(url):
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36"}
    response = requests.get(url, headers=headers)
    text = response.text
    duan_zis = re.findall(r'<div class="content".*?>(.*?)</div>', text, re.DOTALL)
    duanzis = []
    for duanzi in duan_zis:
        x = re.sub("<.*?>", "", duanzi)
        print(x.strip())
        print("*" * 40)


def main():
    url = "http://www.yicommunity.com/"
    parse_page(url)


if __name__ == '__main__':
    main()

结果如下:
C:\python38\python.exe “C:/python38/new project/2rd/dday9.py”
第一次发,希望过。今天跑业务###怎么割的###路过建行24小时ATM,玻璃门,一妹纸取完钱准备出来,打不开门了,双手趴在玻璃门上一脸惊恐和苦逼的看着外面的人………………妹纸,难道你是真没看到旁边写的“按键开门”么?


去年出去实习,在大山上,山上有许多栗子树,老师特别嘱咐我们不要摘,也不要捡----割割-----中午我们坐在树下休息,有个同学好奇的拣了个栗子,开心的说,哇!原来栗子是长这样的!这时突然从旁边玉米地里冲出一大婶,手持镰刀,大叫,谁偷我栗子!!!我们全傻了,难道这就是传说中的潜伏。。。


手机不割…本人管道工一枚,话说今天总公司领导视察,新来一人,在高空拧阀门,阀门要两边同时紧,大家都懂的,那伙计对着一边猛紧,领导看到,大喊,师傅,不是那么干的,那伙计扭头一看,说,你懂个J8,就是那样干的。领导听见后,默默走开?第一次发,希望过


一句话不割,我有一脑残同事,今天早上拎起女儿的书包去上学了,把女儿扔家里了。


cnt今天几个同事去常去的饭店吃饭,此为背景。。我的歌声里。。。同事说上次吃的西红柿牛腩不错点一个,喊来服务员:来份西红柿牛腩。答:我们这没有西红柿牛腩,有个番茄牛腩要不要尝尝。。番茄。。尝尝,一群人满脸黑线。


真的梦想成真了!求过———昨天做梦洗脸的时候流鼻血了,结果早上洗脸的时候果真流鼻血了,我要是梦到槑槑号码还多好啊⊙o⊙


刚开会的时候和公司一女同事坐在一起,因忍不住放了P,女同事问我:昨晚是不是去约会了?我说:你咋知道?女同事:我从你的P里问出了麻辣烫的味道……卧槽!


昨天路过一家卖里脊烤串的店店,我突然抬头看见又没见过的新品种“肉里奶冰”,我觉得这名字够雷人,怀着激动的心情对老板说:我要肉里奶冰! 老板很茫然,啥? 我说:我要肉里奶冰! 他还是很茫然,这时候人多了,他就忙去了,不理我了。 我很纳闷的再次抬头看招牌,靠,他是竖起写的!是肉串、里脊、奶茶、冰淇琳!!!


宝宝还没满月,就接公司命令去南非待了三年。~~割了楼主的JJ~~昨天回国,拎着大包小包,在小区门口被一个比男孩子还淘气得多的小女娃子撞得包掉落一地,可恶的是那女娃子捡了地上掉的零食就跑。我想也没想就吼了句,这谁家的孩子,有没有人教啊?只听背后一冷冷的声音传过来:这是你家的孩子……


外派广州的时候,公司的保安队长也是从哈尔滨派的(广州本地人工太高了……请不起的说),还真抓到个小偷,被抓了还敢挑衅,东北人那脾气能惯着么?十个手指头掰了六根——大拇指食指中指。 第二天sb记者来采访,头一句是:你把小偷的手指头掰断,是不是太残忍了? 队长当时就怒了,狠声道:“下次抓住我还掰,咋地吧!” 队长V5


cnt啊,大清早拉面馆人超多有木有,…………处男不G可以吗…………最近qb看多了,总看到wsj等字样,我纯洁的心灵受到耳濡目染,吃完饭找纸擦嘴 ,到处都没找到,脑子抽了一下随口冲老板大吼:擦嘴的wsj呢,给我拿几张。 可…gc是,老板真的拿出一包护舒宝放在桌上×_×,我不会告诉你老板最后被老板娘扁了一顿。。。求rp加100啊,最近玩WOW 老R不到准备啊


lz广告牌匾店员……国歌……小城市,最近一个大的商场装修完成,一个设计完成的人说要改牌匾,原因很伟大,因为有的字是日语 商场不让用 。赞了


最近看见好多碰瓷的……大哥放过我……突然想起来初中早上上学有次过马路双黄线上被个桑塔纳带倒,司机要带我去医院,我怕被拐卖(……)跟人家说没事就让他走了,我真是个好人!!!!


五六岁时的一个夏日午后,和邻居马丽娜在门口玩,我穿了粉色公主裙还撑了一把儿童伞。她家栅栏外有一个大臭泥坑,很有挑战性,我就华丽丽地跳越了过去。然后对马丽娜说:我厉害不?马丽娜吸了吸大鼻涕说:我没看见。我就又跳了一下。结果直接掉坑里了,越陷越深,我还和她乐呢,粘糊糊得真好玩,马上就到胸口了,才发觉我出不去,就哭了。马丽娜跟傻子似的就知道瞪俩眼儿瞅着吸大鼻涕。要不是后来徐娇她姥爷路过给我捞出来,就没有今天的这条糗~事儿了。Ps:当天下午我自己在院子里的大盆里洗的澡,我妈连一个手指头都没给我洗!!!晚饭后好像还捞顿揍。。。我的公主裙报废了。。。-------我是花姐的分割线-------懂事后,我知道栅栏那边是猪圈,大臭泥坑是猪粪坑。。。。此事导致姐永生不吃猪肉。。。因为猪圈里都是猪粪。。。Cnt 求码 求职 求rp


写武侠小说一定要取好名字,比如西门吹雪大战叶孤城,就很有意境,如果写成西门大拿大战叶大脑袋,估计没人会看…


发个以前遇到的事情,为即将要做的手术涨涨RP……哥哥割……一次和前男友看电影,入场的时候刚好赶上上一场出来。一个女的,穿的超短裙,一个大洞从上一直破到下面,这当然不是GC。就当她和她男友走过我们身边时,听到她男友说:没关系,就说是狗狗抓破的。话说你们看电影都干了些什么?


哥哥家有五岁小正太,那天去超市,正太非要买薯片和巧克力,哥哥、嫂子拧不过他,就给买了,在超市俩人对着他一顿狂批啊,各种教育啊结果晚上,哥哥去洗澡。。。只见正太拿着开封的薯片往他麻麻身上一丢说:没有下次了啊、下次要吃自己买啊、我不陪你骗爸爸了。。我看着嫂子谄媚的脸,石化了。。。


第一次发,我哥我哥我哥哥哥--------刚才参加面试,上面有一个填写期望工资一栏,我填写的2000,觉得有点少。我偷偷看了一下旁边的人写的,600!!!!有没有!那面试官喊他第二天来上班!


悲剧的大龄青年第一次谈恋爱,想送女友礼物,纠结了很久不知道送什么好.然后不小心被一个邪恶的妹纸忽悠,给女友送了把伞…被周围的妇女同志BS了很久,“丫的,你还想不想结婚的”


家胖去买白砂纸,一块一张,胖说便宜点儿,十块钱十张吧。老板说划不上,十块钱九张吧,那猪痛快的答应了……


用微信看传说


更多…


Process finished with exit code 0

总结:
正则表达式的使用可以方便很多。
本人将在个人博客持续分享个人爬虫之路,
希望在学习爬虫的小伙伴可以一起交流进步。

发布了12 篇原创文章 · 获赞 3 · 访问量 2217

猜你喜欢

转载自blog.csdn.net/dinnersize/article/details/104444789