Python如何清理收藏夾里已失效的網(wǎng)站,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)公司長(zhǎng)期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為武清企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì),武清網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。失效的書簽們
我們?nèi)粘g覽網(wǎng)站的時(shí)候,時(shí)不時(shí)會(huì)遇到些新奇的東西( 你懂的.jpg ),于是我們就默默的點(diǎn)了個(gè)收藏或者加書簽。然而當(dāng)我們面對(duì)成百上千的書簽和收藏夾的時(shí)候,總會(huì)頭疼不已……
尤其是昨天還在更新的程序設(shè)計(jì)博客,今天就掛了永不更新?;蛘呤亲蛱炜吹钠饎诺碾娪熬W(wǎng)站,今天直接404。失效頁(yè)面這么多,每次我打開才知道失效了,并且需要手動(dòng)刪除,這能是一個(gè)程序員干的事情嗎?
可是無(wú)論是Google瀏覽器還是國(guó)內(nèi)瀏覽器,最多也就提供一個(gè)對(duì)于收藏夾的備份服務(wù),那只能Python走起了。
Python支持的收藏夾文件格式
對(duì)于收藏夾提供的支持很少,主要還是因?yàn)槭詹貖A藏在瀏覽器里面,我們只能手動(dòng)導(dǎo)出htm文件進(jìn)行管理
內(nèi)容比較簡(jiǎn)單,對(duì)前端沒什么了解的我,也可以很明顯看出其中的樹形結(jié)構(gòu)和內(nèi)在邏輯。
固定格式 網(wǎng)址 固定格式 頁(yè)面名 固定格式
很簡(jiǎn)單的想到了正則匹配,其中有兩個(gè)子串。提取出來(lái)再挨個(gè)訪問,看看哪個(gè)失效了,就刪除,就能獲得清理后的收藏夾了。
讀取收藏夾文件
path="C:\\Users\\XU\\Desktop"fname="bookmarks.html"os.chdir(path)bookmarks_f=open(fname,"r+",encoding='UTF-8')booklists=bookmarks_f.readlines()bookmarks_f.close()
因?yàn)閷?duì)于前端的不熟悉,這個(gè)導(dǎo)出的收藏夾可以抽象的分成
結(jié)構(gòu)代碼
保存網(wǎng)頁(yè)書簽的關(guān)鍵代碼
其中結(jié)構(gòu)代碼我們不能動(dòng),要原封不動(dòng)的保留,而保存網(wǎng)頁(yè)書簽的關(guān)鍵代碼,我們要提取內(nèi)容并且進(jìn)行判斷保留和刪除。
所以這里采用readlines函數(shù),每行讀取,單獨(dú)判斷。
正則匹配
pattern=r'HREF="(.*?)".*?>(.*?)</A>'whilelen(booklists)>0:bookmark=booklists.pop(0)detail=re.search(pattern,bookmark)
如果是關(guān)鍵代碼:提取出的子串在 detail.group(1) 和 detail.group(2) 里面
而如果是結(jié)構(gòu)代碼:detail == None
訪問頁(yè)面
importrequestsr=requests.get(detail.group(1),timeout=500)
編代碼嘗試之后發(fā)現(xiàn)會(huì)有這四種情況
r.status_code == requests.codes.ok
r.status_code==404
r.status_code!=404 && 無(wú)法訪問 (可能是屏蔽爬蟲,建議保留)
requests.exceptions.ConnectionError
類似知乎、簡(jiǎn)書基本都反爬了,所以簡(jiǎn)單的get還不能有效訪問,細(xì)節(jié)不值得大費(fèi)周章,直接保留就好。而error,直接用try拋出異常就好,不然程序會(huì)停止運(yùn)行。
添加邏輯后:
whilelen(booklists)>0:bookmark=booklists.pop(0)detail=re.search(pattern,bookmark)ifdetail:#print(detail.group(1)+"----"+detail.group(2))try:#訪問r=requests.get(detail.group(1),timeout=500)#如果可則添加ifr.status_code==requests.codes.ok:new_lists.append(bookmark)print("ok------保留:"+detail.group(1)+""+detail.group(2))else:if(r.status_code==404):print("不可訪問刪除:"+detail.group(1)+""+detail.group(2)+'錯(cuò)誤碼'+str(r.status_code))else:print("其他原因保留:"+detail.group(1)+""+detail.group(2)+'錯(cuò)誤碼'+str(r.status_code))new_lists.append(bookmark)except:print("不可訪問刪除:"+detail.group(1)+""+detail.group(2))#new_lists.append(bookmark)else:#沒匹配到是結(jié)構(gòu)語(yǔ)句new_lists.append(bookmark)
程序執(zhí)行情況
導(dǎo)出htm
bookmarks_f=open('new_'+fname,"w+",encoding='UTF-8')bookmarks_f.writelines(new_lists)bookmarks_f.close()
導(dǎo)入瀏覽器
實(shí)際應(yīng)用于我的瀏覽器
確實(shí)有很多電影網(wǎng)都失效了,通過Python能夠一鍵清理其中無(wú)法訪問的書簽。人生苦短,Python 的確可以讓生活更高效~
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。
名稱欄目:Python如何清理收藏夾里已失效的網(wǎng)站-創(chuàng)新互聯(lián)
瀏覽路徑:http://m.rwnh.cn/article12/cechgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)站策劃、企業(yè)建站、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容