懂python的女票太可怕,一行代码窥探了我的浏览器历史秘密...(代码片段)

程序员启航 程序员启航     2022-12-09     397

关键词:

作者: 菜鸟学Python

Image

一直以来都有一个传说:世界上有两种程序员:一种是程序员,另一种是女程序员。如果你的女票是程序员,那么恭喜你good luck!请务必更加小心哦,否则,会分分钟教你做人。

前段时间助教跟我聊天,倒了一肚子的苦水,说女票懂Python太可拍,具体是怎么回事呢,下面我们来细细说一下。

Image

1.事情起因

小马哥的女友是也是一名会的Python的程序员(据说一开始的时候也是看着我的菜鸟学Python公众号学的 值得收藏|菜鸟学Python【入门文章大全】),相处的时间久了,生活中难免会有点小摩擦。这不前段时间,熬夜打游戏玩电脑的时间有点长,没有精力陪女友逛街看电视剧,导致了她不开心,闹情绪了。

Image

蹭小马哥去洗澡,偷偷打开他电脑,看看他整天都在看些什么。为啥心思都不花女票身上。没想到女票仅用了一行Python代码,就获取得到了浏览器历史记录,让小马哥的上网记录一览无余。事后还好,有惊无险,今天我就给大家介绍一下这款神器。

1.神库browserhistory库介绍

browserhistory是Python的第三方库browserhistory。可以非常方便的获取你的浏览器的历史记录。Python真的是无所不能,太多太多现成的轮子了,你只要学会组装即可。

Image

https://github.com/kcp18/browserhistory

对于browserhistory的安装,可以采用pip install browserhistory的命令进行安装。

Image

browserhistory是一款简易的python脚本库,支持linux、Mac和Windows系统,支持对于火狐、谷歌和 Safari浏览器的历史记录抓取,使用的方法非常的简单。

2.如何使用

我们首先来看一下browserhistory的简单使用方法。需要注意的是,在使用browserhistory库之前,需要先关闭浏览器。简单的应用程序如下图所示:

Image

程序中首先导入browserhistory库,然后利用get_browserhistory函数获得到浏览器的历史记录。dict_obj.keys()返回的是抓取的浏览器类型。而抓取的浏览器历史记录中,包含的则是网页地址以及网页的标题。

3.抓取浏览记录写入本地文件

browserhistory库有四个函数,我们主要使用的有两个:

Image

其中get_browserhistory函数是获取浏览器的历史记录;write_browserhistory_csv函数是将获得的历史浏览记录写入到本地的csv文件。

get_database_paths函数则是用来输出浏览器的历史记录存储路径,get_username则是获取用户名。

我们可以直接利用browserhistory.write_browserhistory_csv,一行代码就可以将浏览器的历史记录写入到本地。

Image

4.窥探历史记录

获取到上面的浏览器历史记录后,可以利用简单的数据分析,进一步的窥探秘密。

1).用五行代码来统计你经常浏览的网页地址域名:

Image

程序利用urlparse来解析网页地址,并输入网页地址的域名(netloc)。接下来就可以进行统计,并获取最长浏览的网页域名。

2).用Pyecharts可视化分析

为了更好的进行展示,可以通过pyecharts库来进行可视化的展示。结果如下图所示:

Image

可以看到,浏览的最多的网页域名是www.google.com,除此之外,就是虎扑的域名。当女友查看并分析了他的浏览器历史之后,终于露出了满意的笑容,一场潜在的危机就这样化解掉了。

所以,友情提醒各位,不要随便上一些奇怪的网站哦。另外要记得及时清理你的history哦!友情提醒,没事赶紧回去看看的浏览器记录吧!

 

说实在的,每次在后台看到一些读者的回应都觉得很欣慰,我想把我收藏的一些编程干货贡献给大家,回馈每一个读者,希望能帮到你们。

干货主要有:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤    Python所有知识点汇总(可以弄清楚Python的所有方向和技术)

如果你用得到的话可以直接拿走,在我的QQ技术交流群里,可以自助拿走,群号是781344551。

挑灯看剑

...自己又回忆起了自己大学本科的生活、、、  看到自己的女票,还是那么的可爱,自己依然那么高兴。中午和她们室友一起吃火锅,旁边一个女票说还真是第一次见--的男友,顺便问了一句你在广州工作?我回复来广州耍几天... 查看详情

奇怪的字符串

...空间限制str.pas/c/cppstr.instr.out1s128MB题目描述有一天,小A的女票为了让小A证明他对她的忠诚,要求小A生成一个长度为n的、全由小写英文字母构成的字符串,只能使用k种字母。要求满足:?字符串中相邻的两个字母不能相同。?必... 查看详情

我的 Javascript 和 Python 代码是不是因为指数或其他原因给了我不同的答案?

】我的Javascript和Python代码是不是因为指数或其他原因给了我不同的答案?【英文标题】:AremyJavascriptandPythoncodegivingmedifferentanswersbecauseofexponents,orsomethingelse?我的Javascript和Python代码是否因为指数或其他原因给了我不同的答案?【... 查看详情

MetaMaskOnboarding 变量破坏了我的代码

】MetaMaskOnboarding变量破坏了我的代码【英文标题】:MetaMaskOnboardingvariablebreaksmycode【发布时间】:2022-01-0802:16:13【问题描述】:我正在使用MetaMasksimpledapptutorial。直到我到达MetaMaskOnboarding部分,如果浏览器检测到未安装Metamask则会... 查看详情

我用chatgpt和lightly做了一个astroshooter游戏,没有写一行代码

...见识一下ChatGPT的能力。我做了一个小测试,尝试通过用Python做一个简单的AstroShooter游戏来弄清楚ChatGPT的能力。我的目标是:除了调整参数外,完全不写任何一行代码,相当于一个不太懂编程的人使用ChatGPT来开发游戏。在这篇文... 查看详情

看不懂这个返回类型?

...:我正在阅读我的老师给我的一些代码,但我不太理解某一行特定的代码。该函数返回一个int&。return(*(Vector*)this)[i];此返回语句位于“[]”的运算符重载中。在“this”的基类中还定义了另一个[]运算符重载。基类是定义的类“... 查看详情

2017河南工业大学acm邀请赛d题

... 122提交 状态 题目描述rqy在和妹子约会,突然女票打来电话。rqy骗女票他在写代码。女票为了证实,问他键盘上F键左边是哪个键。你能否帮助rqy回应女票的质问?不然他可就要写思想汇报了...输入输入数据第一行 查看详情

漫画|结对编程实在太可怕了!!

第一次结对编程,让我十分讨厌因为它实在太可怕了!我的一举一动都被旁边的人看得清清楚楚。我敲入了一个变量,写错了一个字母,删除了一个字符......每次起个函数名我都战战兢兢。当我花了很多时间都找... 查看详情

河南工业大学校赛d题.rqy的键盘

...bsp; 解决:136  题目描述 rqy在和妹子约会,突然女票打来电话。rqy骗女票他在写代码。女票为了证实,问他键盘上F键左边是哪个键。你能否帮助rqy回应女票的质问?不然他可就要写思想汇报了...输入 输入数据第一行是... 查看详情

CocoaPods 破坏了我的项目

...依赖项。在我的SubscribeViewController.m文件中,我添加了这一行(不会发出编译器警告或错误):AFHTTPRe 查看详情

代码在我的系统中运行良好,但 coursera autograder 给了我未知的信号

...代码题的目标是实现二分查找算法。输入格式--输入的第一行包含一个整数n和一个序列a0约束--1≤n,k≤10^4;1≤a[i]≤ 查看详情

Python:OSError:[Errno 22] Invalid argument: wrong path(在输出上似乎 Python 修改了我的路径)

】Python:OSError:[Errno22]Invalidargument:wrongpath(在输出上似乎Python修改了我的路径)【英文标题】:Python:OSError:[Errno22]Invalidargument:wrongpath(onOutputseemsthatPythonmodifymypath)【发布时间】:2021-12-2919:15:36【问题描述】:嘿嘿。似乎是我的Py... 查看详情

可怕,chatgpt用3小时教会我数据分析

chatGPT这玩意真的是我的救星,用它作为我的Python教练,我用三个小时学会了数据处理(Pandas)和绘图(matplotlib)。这两个库的学习,在之前已经困扰了我7个月。之前卡壳的原因,是我一直没有耐心从零开始,按照教材设置的教... 查看详情

就在之前10月,python3.10正式发布了,我发现了一个可怕的功能......(代码片段)

在之前10月,Python3.10正式发布了,我发现了一个可怕的功能......1.升级3.10新版本2.`or`模式的使用3.通配符匹配任意对象4.使用可变参数`*args`5.使用可变参数`**kv`7.类对象的匹配8.匹配要注意顺序就在之前(20... 查看详情

Plotly 杀死了我的 python 安装

】Plotly杀死了我的python安装【英文标题】:Plotlykilledmypythoninstall【发布时间】:2015-04-2908:20:09【问题描述】:我只是尝试使用pip安装Plotly。我正在从Anaconda运行python,现在每当我尝试运行任何python时,我都会收到以下错误,我不... 查看详情

无法窥探原始值;在nestJS中给定的未定义

...务测试功能时,我在Nestjs中遇到了这个错误这是我的服务代码user.service.tsimportInjectable,HttpException,HttpCode, 查看详情

javascript窥探私人服务karma,jasmine(代码片段)

查看详情

for循环中的QT cpp延迟

...件。现在我想在我的循环中有1秒的延迟。我希望他追加一行并等待1秒,然后再填充另一行。我在我的循环中尝试了睡眠,但它不起作用。他毫不拖延地填满了我的文本浏览器。*#include<QThread>*..sleep(1);我的代码是这样的 查看详情