【问题标题】:How do I get URLs that are being accessed in my browser in 'real time'?如何“实时”获取浏览器中正在访问的 URL?
【发布时间】:2021-07-30 20:24:16
【问题描述】:

我想编写一个程序,在我的计算机(Windows 10)浏览器上返回我当前或上次访问的 URL。有什么办法可以得到那个网址吗?

我尝试使用 Python 和 SQLite 访问 C:\Users%USERNAME%\AppData\Local\Google\Chrome\User Data\Default\History 上的 Chrome 历史数据库并且它有效,但如果我使用的是浏览器,数据库被锁定。

我知道通过使用 Wireshark,可以在访问 URL 时看到数据包,但我在这些数据包字段中找不到完整的 URL,只能找到服务器名称(即:stackoverflow.com)。

我想知道是否有一种方法可以让我看到 Wireshark 完成的信息,但只是为了获取完整的 URL,没有别的。谢谢!

【问题讨论】:

  • 访问的路径将是 HTTP 标头的一部分。您可以在 Wireshark 中进行检查。您可以通过使用scapy 并以这种方式检查标头以编程方式获得此信息。
  • 请注意,这只适用于 HTTP 请求,因为 HTTPS 会被加密。
  • 正确@SuperStormer,我特别谈论HTTPS请求,因为这些请求似乎是当今最常见的。您知道是否有一种方法可以从这些数据包中解密该路径?由于该程序将在我的计算机上运行,​​我想我应该能够以某种方式解密该内容,但我不确定如何。谢谢!

标签: python google-chrome url browser wireshark


【解决方案1】:

我通过使用 mitmproxy 找到了解决方案:https://mitmproxy.org/。 YouTube 上的这段视频帮助我完成了安装和设置过程:https://www.youtube.com/watch?v=7BXsaU42yok。该视频解释了在 Mac 上的安装,但它与 Windows 并没有太大区别。然后,您可以使用 Python 通过 flow.request.pretty_url 属性捕获和处理 HTTPS 请求中包含的 URL:https://docs.mitmproxy.org/stable/addons-scripting/

【讨论】:

    猜你喜欢
    • 2011-01-18
    • 2013-12-26
    • 2018-04-01
    • 2021-10-02
    • 1970-01-01
    • 2013-08-23
    • 2020-05-31
    • 2021-11-01
    • 2017-05-10
    相关资源
    最近更新 更多