用 Python 清理收藏夹里已失效的网站

news/2024/5/20 12:31:26/文章来源:https://blog.csdn.net/itcodexy/article/details/109574229

失效的书签们

我们日常浏览网站的时候,时不时会遇到些新奇的东西( 你懂的.jpg ),于是我们就默默的点了个收藏或者加书签。然而当我们面对成百上千的书签和收藏夹的时候,总会头疼不已……

尤其是昨天还在更新的程序设计博客,今天就挂了永不更新。或者是昨天看的起劲的电影网站,今天直接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>'
while len(booklists)>0:bookmark = booklists.pop(0)detail = re.search(pattern, bookmark)

如果是关键代码:提取出的子串在 detail.group(1) 和 detail.group(2) 里面

而如果是结构代码:detail == None

访问页面

import requestsr = 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抛出异常就好,不然程序会停止运行。

添加逻辑后:(代码可左右拖动)

while len(booklists)>0:bookmark = 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:#没匹配到是结构语句new_lists.append(bookmark)

程序执行情况

导出htm

bookmarks_f = open('new_'+fname, "w+" ,encoding='UTF-8')
bookmarks_f.writelines(new_lists)
bookmarks_f.close()

导入浏览器

实际应用于我的浏览器

确实有很多电影网都失效了,通过Python能够一键清理其中无法访问的书签。人生苦短,Python 的确可以让生活更高效~

最后本文完整代码:

https://pan.baidu.com/s/1UHJFGGoIHVqWkhpE8nS9YA 

提取码: k13u 

往期精彩

如何在面试中展现你对Python的coding能力?

如何用Python和数据分析鉴别网络刷单 ?

使用Python伪装黑客,批量获取网站密码!

用Python打造实时截图识别OCR

Python+Matplotlib 制作排序算法的动画

Python项目:让你的文字会说话

利用Python开发智能阅卷系统

Scrapy 爬取二手房信息,进行可视化数据分析

END

关注【程序IT圈】,更多的Python好文输出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_727098.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站资源防盗链结构设计

标题索引 追溯原因 数据测试 防盗结构 追溯原因 一步一印&#xff0c;有印为证&#xff0c;网站资源防盗链老生常谈&#xff0c;但是如何才能确保网站资源如图片等特殊资源不被盗链&#xff1f;这不仅仅是运维人员所考虑的问题&#xff0c;更是开发人员必须控制并解决的一个问…

Python爬虫+Flask,带你创建个网站!

文化不分边界人&#xff0c;为什么要读书&#xff1f;举个例子:当看到天边飞鸟&#xff0c;你会说&#xff1a;“落霞与孤鹜齐飞&#xff0c;秋水共长天一色。”而不是&#xff1a;“卧靠&#xff0c;好多鸟。”;当你失恋时你低吟浅唱道&#xff1a;“人生若只如初见&#xff0…

jiathis:社交化数据分析 帮助网站提高流量

随着微博的兴起&#xff0c;社会化营销逐渐走进我们的生活&#xff0c;不管是杜蕾斯微博事件还是最近在小米大战360&#xff0c;都是在社会化平台上面进行&#xff0c;而 如何方便的将网站内 容分享至社会化媒体&#xff0c;&#xff0c;大部分博主会选择工具&#xff0c;但选择…

珍藏已久的OS学习网站,拿出来分享给大家!

平常经常看推荐各种资源教程的&#xff0c;感觉有很多文章稂莠不齐&#xff0c;这次我来推荐点硬核的网站&#xff0c;包你有收获。一般很少有人推荐操作系统的网站吧。。。。。。这几个网站来源于我平常的学习总结&#xff0c;也有一些是来源于网上优秀的回答&#xff0c;希望…

哪个云服务器网站不用备案,有不需要备案的云服务器

有不需要备案的云服务器 内容精选换一换不想看文字&#xff0c;请直接戳视频链接。可以不做备案吗&#xff1f;根据《互联网信息服务管理办法》等相关规定&#xff0c;使用中国大陆节点服务器开办的网站&#xff0c;必须先办理网站备案&#xff0c;备案成功并获取通信管理局下发…

吴翰清澄清:从没黑过阿里网站!

前几日吴翰清辟谣网络传闻的“黑入阿里网站”、“马云下死命令留他”、“500万年薪”等信息&#xff0c;称这些均是假新闻。吴翰清微博全文&#xff1a;“这是个假新闻&#xff01;请不要再消费我和阿里来赚流量了。我再澄清一次&#xff1a;1、我从没黑过阿里网站。2、宣传黑客…

idea 一直索引_长宁区360SEO优化服务,搜索引擎优化_上海持硕信息技术有限公司...

首页 > 新闻中心发布时间&#xff1a;2020-11-01 02:58:47 导读&#xff1a;上海持硕信息技术有限公司为您提供长宁区360SEO优化服务,搜索引擎优化的相关知识与详情&#xff1a; 在你的栏目页拥有较多的内容页时&#xff0c;就应该考虑相关推荐和指引性的链接导向&#xff0…

三年前红遍众筹网站,这款出自MIT的家庭机器人终于开卖了

本文来自AI新媒体量子位&#xff08;QbitAI&#xff09;图里这个产品你大概见过&#xff0c;但想不起来它的名字。 它是一个“家用社交机器人”&#xff0c;名叫Jibo&#xff0c;有黑白两色。现在说来&#xff0c;它的功能似乎和巨头标配的智能音箱有点重叠&#xff1a;能够作为…

建立网站需要什么条件_建立网站时需要了解的网站建设知识

网站建设的重点是最重要的。 根据不同客户的需求&#xff0c;此重要性具有不同的定义。 但是对于人们的直观定位而言&#xff0c;页面的美观度是一个不可忽视的重要因素。 网页设计彰显创造力。 许多人追求目标。 网页设计确实是网站建设中非常重要的一点&#xff0c;也是人们看…

python获取网站信息_关于python模拟登陆抓取网站信息

我想用requests实现在www.lu.com模拟登陆后抓取一些产品信息&#xff0c;通过chrome的抓包工具我抓到了登陆时的form data和header(变量header)&#xff0c;以及访问需要抓取的页面时的header(变量listheader),但运行完程序后我输入r.url发现返回的地址是https://list.lu.com/n…

怎么避免后台被搜索_企业网站seo关键词优化怎么做?

关键词没有排名一切皆无。企业网站seo关键词优化到位一切皆有&#xff0c;怎么做好企业网站的关键词排名是困扰大部分seo从业者的问题。搜索引擎是一套程序&#xff0c;会按照程序的设定来判断一个网站的排序结果&#xff0c;从这个角度来讲&#xff0c;任何网站的优化点都是一…

python隐藏手机号码程序_Python网站手机号码解密的一种方法

黄页88网站反爬措施对手机号进行了一些加密处理。这里介绍一下怎么解密手机号码的方法。首先&#xff0c;我们看一下网站显示的手机号是这样的&#xff1a;显示的手机号使用ctrl c复制粘贴后变成了这样&#xff1a;复制后的手机号码而实际上&#xff0c;用Python爬虫获取到的内…

为什么大型网站前端使用PHP,后台逻辑却用Java?

来自&#xff1a;知乎链接&#xff1a;https://www.zhihu.com/question/20314377黄良懿&#xff0c;做做架构&#xff0c;写写代码前两周参加完 ThinkInLamp 的 PHP 架构师大会&#xff0c;听鸟哥一上午的分享&#xff0c;感慨很多&#xff0c;PHP 业界虽然方向不明荒废了两三年…

作为程序员,我都逛了哪些技术网站?(收藏篇)

一、在线教程首先列出一些在线教程网站&#xff0c;这些在线教程网站通常都比较适合入门&#xff0c;可以作为开发学习路上的第一个阶梯&#xff0c;也可以作为工作中的在线文档。1、菜鸟教程地 址&#xff1a;https://www.runoob.com/简 介&#xff1a;在线教程网站&#xff0…

九度搜索引擎点击优化_企业网站为什么要做SEO优化

点击上方“蓝字”&#xff0c;发现更多精彩~~~随着互联网的发展&#xff0c;企业都意识到了网络营销的前景是多么广大&#xff0c;都想从中赚取高额的利润。想要做出名堂来就需要你的网站被搜索引擎所收录&#xff0c;也只有被收录后才有可能被用户看到你的网站&#xff0c;来的…

网站翻译功能

功能分两块&#xff1a;1、获取页面上要翻译的内容&#xff1b; 2、将内容从自定义的资源包中匹配&#xff1b; 我的网站翻译就是在创建html页面的时候&#xff0c;重写其中的一个方法&#xff0c; 第一步&#xff1a;获取页面上要翻译的内容&#xff1a; 在MVC中由这么一个类&…

CDN网站加速的工作流程

2019独角兽企业重金招聘Python工程师标准>>> CDN的全称是Content Delivery Network&#xff0c;即内容分发网络。 CDN的通俗理解就是网站加速&#xff0c;CPU负载均衡&#xff0c;可以解决跨运营商&#xff0c;跨地区&#xff0c;服务器负载能力过低&#xff0c;带宽…

常用网站攻击方式

2019独角兽企业重金招聘Python工程师标准>>> 常用网站攻击方式 需要积累 转载于:https://my.oschina.net/u/3697586/blog/1934239

SEO手册:外链建设,必备的四大要素!

我们知道外链&#xff0c;也许并不是SEO的全部&#xff0c;但通过链接&#xff0c;搜索引擎可以很好的统计目标网站链接的数量以及权威度&#xff0c;从而进一步判断&#xff0c;目标页面针对特定关键词&#xff0c;在搜索结果中的合理位置。同时&#xff0c;它也是每次百度算法…

网站部署到域名

2019独角兽企业重金招聘Python工程师标准>>> 在服务伤处买一个域名&#xff0c;在自己的服务器部署好项目&#xff0c;把域名解析到自己的服务器的IP&#xff0c; 配置nginx.conf server { listen 80; server_name www.XXX.com location / { proxy_pass http://IP:…