清风Python

还在用书签栏?太low了,Python能为网站添加快捷方式!

2021-01-25  本文已影响0人  清风Python

保存历史网站

作为程序员,我们日常在资料搜索或者网站学习过程中,经常会遇到一些有趣的网站,或者需要收藏的网站,比如这个宝藏(逗比)博主的个人博客==>: https://qingfengpython.cn

那么,当我们需要收藏这些网站,以备后续查看时,该如何操作呢?大体有这么两类人:

  1. 创建一个桌面的浏览器快捷方式,以备后续使用,比如这样:
image-20210124213145869.png
  1. 使用ctrl+D创建一个书签栏,下次点击访问
image.png
然后的然后,不管你使用以上哪种方式,随着你不时的保存一些网站,导致的结果就是快捷方式/书签栏一大堆,找起来麻烦费事。而且,人云亦云的操作,怎么能符合程序员高大上(装13)的心态呢?

今天就来教大家一个高逼格的网站快捷访问方式。

## 搜索引擎

谈到搜索引擎,很多人第一时间想到的就是,度娘、Google、so、bing这类大家常用的搜索引擎。大家可以通过如下方式来查看自己浏览器上设置的搜索引擎:
image-20210124214108026.png

你以为我要给大家讲搜索引擎哪家强,中国山东找蓝翔吗???No....

大家注意到,搜索引擎红框中有一个关键字的的列,当我们输入了这个关键字,就可以快速的跳转至该网址。那么,如果我们把需要记载的网站,保存在下方的其他搜索引擎中,是不就能达到快速搜索的目的呢?

让我们做个测试,我们将刚才提到的宝藏博主网站,通过设置关键字保存一个其他类型的搜索引擎。

[ image.png

添加好个快捷方式,下来让我们尝试下访问网站的效果吧:

清风Python搜索引擎.gif

为了保证测试的可靠性,我们专门开一个chrome的无痕浏览。当我们输入 qf,网页已经识别出了我们设置的快捷方式。然后敲击回车完成跳转....是不是既简单又快速。

那么,到这里文章就完了?怎么可能...既然是程序员,一个一个手动填写也太对不起身份了,让我们来使用代码批量添加吧!

chrome浏览器的数据存储

chrome浏览器作为程序员标配,咱们平时访问和保存的信息都存放在哪里呢?让我们找找看....首先我们通过在桌面,右键chrome图标,打开文件位置,找到了chrome的安装路径:

C:\Users\Administrator\AppData\Local\Google\Chrome\Application

然后返回当前的父级目录(即Chrome文件夹),然后依次进入User Data\Default文件夹内。既然我们刚才添加了内容,就将内部的文件按照修改日期排序,会看到一些没有文件类型的奇怪文件,熟悉数据存储的朋友大概可以猜到,微型应用都喜欢使用SQLite数据库,因为文本即数据库操作简单方便。根据大小和修改时间,我猜咱们的搜索引擎数据存储在Preferences文件夹内。

image.png

别问我为何如此能掐会算,这个秘密只有我师兄李白知道:

天上白玉京,十二楼五城。仙人抚我顶,结发受长生。

让我们用SQLiteStudio工具打开数据库瞧瞧吧:

image.png

通过查看keywords表,我们找到刚才添加的搜索引擎数据,对应的看看它的表结构要求。

Python网站数据插入

都分析到这里了,小伙伴们还等什么,开始写代码批量插入数据吧!秉承着Python之禅 “简洁胜于复杂”的理念,这里就不使用excel表格了,用Python再带的csv和sqlite3模块来整理数据完成插入吧。

开始撸代码:

# -*- coding: utf-8 -*-
# @Author   : 王翔
# @微信号   : King_Uranus
# @公众号    : 清风Python
# @GitHub   : https://github.com/BreezePython
# @Date     : 2021/01/24 22:38:53
# @Software : PyCharm
# @version  :Python 3.9.1
# @File     : add_web_link.py
import sqlite3
import csv
import os
​
​
class AddChromeLink:
 def __init__(self):
 self.db_file = os.path.join(os.environ['LOCALAPPDATA'], r'Google\Chrome\User Data\Default\Web Data')
 self.conn = self.db_conn()
​
 def check_db_file(self):
 if not os.path.exists(self.db_file):
 input("奇怪了,洗洗睡吧。怎么找不到你的chrome浏览器数据库!")
 exit(1)
​
 def db_conn(self):
 conn = sqlite3.connect(self.db_file, timeout=3)
 return conn
​
 def get_start_id(self):
 cursor = self.conn.cursor()
 try:
 cursor.execute('select max(id) from keywords')
 record = cursor.fetchone()
 return record[0] + 1
 except sqlite3.OperationalError:
 input("数据库已锁,请先关闭chrome浏览器,在进行数据插入操作.")
 exit(1)
 finally:
 cursor.close()
​
 def insert_web_link(self):
 web_links = csv.DictReader(open('website.csv'), delimiter='\t')
 start_id = self.get_start_id()
 cursor = self.conn.cursor()
 try:
 for id, line in enumerate(web_links, start=start_id):
 sql = "insert into keywords (id,favicon_url,short_name,keyword,url) values (?,?,?,?,?)"
 cursor.execute(sql, (id, '', *line.values()))
 print("数据 %s 已插入." % list(line.values()))
 self.conn.commit()
 except sqlite3.OperationalError:
 input("数据库已锁,请先关闭chrome浏览器,在进行数据插入操作.")
 finally:
 cursor.close()
 self.conn.close()
​
​
if __name__ == '__main__':
 ChromeLink = AddChromeLink()
 ChromeLink.check_db_file()
 ChromeLink.db_conn()
 ChromeLink.insert_web_link()
 input()

最终效果如下:

image.png

让我们来测试下代码插入的快捷方式:

测试结果.gif

当然,既然是装13的小工具,当然帮大家打包好exe了,填写excel双击即可运行:

image.png

都看到这里了,喜欢的朋友别忘记点个赞哦!公众号回复 链接获取,即可得到我整理好的代码和小工具,希望大家喜欢。

结束语

最近创建了一个清风Python资源分享与学习交流群,喜欢的朋友加我微信,我拉你入群。那些微商和为了进群发广告的就别自讨无趣了,群内禁止推文与发广告,发现必踢!
期待你关注我的公众号清风Python,如果你觉得不错,希望能动动手指转发给你身边的朋友们。
我的个人博客地址:https://qingfengpython.cn/

上一篇 下一篇

猜你喜欢

热点阅读