最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用 Python 清理收藏夾里已失效的網(wǎng)站

 更新時間:2019年12月03日 09:29:23   作者:Python開源平臺  
這篇文章主要介紹了用 Python 清理收藏夾里已失效的網(wǎng)站,本文通過截圖實例代碼的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下

失效的書簽們

我們?nèi)粘g覽網(wǎng)站的時候,時不時會遇到些新奇的東西( 你懂的.jpg ),于是我們就默默的點了個收藏或者加書簽。然而當(dāng)我們面對成百上千的書簽和收藏夾的時候,總會頭疼不已……

尤其是昨天還在更新的程序設(shè)計博客,今天就掛了永不更新?;蛘呤亲蛱炜吹钠饎诺碾娪熬W(wǎng)站,今天直接404。失效頁面這么多,每次我打開才知道失效了,并且需要手動刪除,這能是一個程序員干的事情嗎?

可是無論是Google瀏覽器還是國內(nèi)瀏覽器,最多也就提供一個對于收藏夾的備份服務(wù),那只能Python走起了。

Python支持的收藏夾文件格式

對于收藏夾提供的支持很少,主要還是因為收藏夾藏在瀏覽器里面,我們只能手動導(dǎo)出htm文件進(jìn)行管理

內(nèi)容比較簡單,對前端沒什么了解的我,也可以很明顯看出其中的樹形結(jié)構(gòu)和內(nèi)在邏輯。

固定格式 網(wǎng)址 固定格式 頁面名 固定格式

很簡單的想到了正則匹配,其中有兩個子串。 提取出來再挨個訪問,看看哪個失效了,就刪除,就能獲得清理后的收藏夾了。

讀取收藏夾文件

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()

因為對于前端的不熟悉,這個導(dǎo)出的收藏夾可以抽象的分成

  • 結(jié)構(gòu)代碼
  • 保存網(wǎng)頁書簽的關(guān)鍵代碼

其中結(jié)構(gòu)代碼我們不能動,要原封不動的保留,而保存網(wǎng)頁書簽的關(guān)鍵代碼,我們要提取內(nèi)容并且進(jìn)行判斷保留和刪除。

所以這里采用readlines函數(shù),每行讀取,單獨判斷。

正則匹配

pattern = r'href="(.*?)" rel="external nofollow" .*?>(.*?)</A>'
while len(booklists)> 0 :
bookmark = booklists.pop( 0 )
detail = re.search(pattern, bookmark)

如果是關(guān)鍵代碼:提取出的子串在 detail.group(1) 和 detail.group(2) 里面

而如果是結(jié)構(gòu)代碼:detail == None

訪問頁面

import requests
r = requests. get (detail. group ( 1
),timeout=
500
)

編代碼嘗試之后發(fā)現(xiàn)會有這四種情況

r.status_code == requests.codes.ok
r.status_code==404
r.status_code!=404 && 無法訪問 (可能是屏蔽爬蟲,建議保留)
requests.exceptions.ConnectionError

類似知乎、簡書基本都反爬了,所以簡單的get還不能有效訪問,細(xì)節(jié)不值得大費周章,直接保留就好。 而error,直接用try拋出異常就好,不然程序會停止運行。

添加邏輯后: (代碼可左右拖動)

while len ( booklists )>0:
= booklists.pop( 0 )
detail = re.search(pattern, bookmark)
if detail:
#print(detail.group(1) +"----"+ detail.group(2))
try :
#訪問
r = requests. get (detail. group ( 1 ),timeout= 500 )
#如果可則添加
if r.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 : #沒匹配到是結(jié)構(gòu)語句
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)入瀏覽器

實際應(yīng)用于我的瀏覽器

確實有很多電影網(wǎng)都失效了,通過Python能夠一鍵清理其中無法訪問的書簽。人生苦短,P ython 的確可以讓生活更高效~

總結(jié)

以上所述是小編給大家介紹的使用 Python 清理收藏夾里已失效的網(wǎng)站,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • Python彈球小游戲的項目代碼

    Python彈球小游戲的項目代碼

    本文主要介紹了Python彈球小游戲的項目代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Python解決“ImportError:?Couldn‘t?import?Django”問題全攻略

    Python解決“ImportError:?Couldn‘t?import?Django”問題全攻略

    本文主要介紹了Python解決“ImportError:?Couldn‘t?import?Django”問題全攻略,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • Python中的main函數(shù)與import用法

    Python中的main函數(shù)與import用法

    這篇文章主要介紹了Python中的main函數(shù)與import用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • python redis 批量設(shè)置過期key過程解析

    python redis 批量設(shè)置過期key過程解析

    這篇文章主要介紹了python redis 批量設(shè)置過期key過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • Python腳本實現(xiàn)datax全量同步mysql到hive

    Python腳本實現(xiàn)datax全量同步mysql到hive

    這篇文章主要和大家分享一下mysql全量同步到hive自動生成json文件的python腳本,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參加一下
    2024-10-10
  • python編程學(xué)習(xí)使用管道Pipe編寫優(yōu)化代碼

    python編程學(xué)習(xí)使用管道Pipe編寫優(yōu)化代碼

    大家好,今天這篇文章我將詳細(xì)講解 Pipe 如何讓你的代碼更加簡潔的方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • jupyter?notebook?中使用ipython?魔法指令的詳細(xì)過程

    jupyter?notebook?中使用ipython?魔法指令的詳細(xì)過程

    在?Jupyter?Notebook?中,IPython?魔法指令為數(shù)據(jù)分析和探索提供了很多便利,這篇文章主要介紹了jupyter?notebook?中使用ipython?魔法指令的詳細(xì)過程,需要的朋友可以參考下
    2024-06-06
  • python如何將多個模型的ROC曲線繪制在一張圖(含圖例)

    python如何將多個模型的ROC曲線繪制在一張圖(含圖例)

    這篇文章主要給大家介紹了關(guān)于python如何將多個模型的ROC曲線繪制在一張圖的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-02-02
  • python中pyqtgraph知識點總結(jié)

    python中pyqtgraph知識點總結(jié)

    在本篇文章里小編給大家整理的是一篇關(guān)于python中pyqtgraph知識點總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • 在Python中過濾Windows文件名中的非法字符方法

    在Python中過濾Windows文件名中的非法字符方法

    今天小編就為大家分享一篇在Python中過濾Windows文件名中的非法字符方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06

最新評論

百色市| 尼木县| 中山市| 藁城市| 洛隆县| 黄陵县| 河曲县| 浮梁县| 普定县| 澄迈县| 门头沟区| 三门县| 原阳县| 思南县| 上高县| 彭泽县| 安图县| 明水县| 舟曲县| 肇庆市| 镇巴县| 同江市| 波密县| 新兴县| 济源市| 城步| 卓尼县| 察哈| 和政县| 乐平市| 炉霍县| 东丽区| 五莲县| 江山市| 巴南区| 古田县| 城口县| 富川| 依兰县| 玛沁县| 南昌市|