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