「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

總結:
正則表達式的使用可以方便很多。
本人將在個人博客持續分享個人爬蟲之路,
希望在學習爬蟲的小夥伴可以一起交流進步。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章