保存历史网站
作为程序员,我们日常在资料搜索或者网站学习过程中,经常会遇到一些有趣的网站,或者需要收藏的网站,比如这个宝藏(逗比)博主的个人博客==>: https://qingfengpython.cn。
那么,当我们需要收藏这些网站,以备后续查看时,该如何操作呢?大体有这么两类人:
- 创建一个桌面的浏览器快捷方式,以备后续使用,比如这样:
- 使用ctrl+D创建一个书签栏,下次点击访问
然后的然后,不管你使用以上哪种方式,随着你不时的保存一些网站,导致的结果就是快捷方式/书签栏一大堆,找起来麻烦费事。而且,人云亦云的操作,怎么能符合程序员高大上(装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/
网友评论