【问题标题】:Get all opened websites from Chrome in Python在 Python 中从 Chrome 获取所有打开的网站
【发布时间】:2017-12-01 06:23:37
【问题描述】:

我使用的是 Windows 8.1,Python 3.6。

是否可以在最新版本的 Chrome 中获取所有当前打开的网站并将网站保存到 D:/ 的文本文件中。

我尝试打开文件:

C:\Users\username\AppData\Local\Google\Chrome\User Data\Default\Current Tabs

但我收到一条错误消息,提示该文件已在另一个程序中打开。
还有另一个名为 History 的文件,其中包含已打开的 URL,但也包含 NULL 等字符。

我尝试在 python 中读取文件,但收到 UndicodeDecodeError(不确定这个词)
然后我尝试通过以下代码打开文件:

with open('C:/Users/username/AppData/Local/Google/Chrome/User Data/Default/History',"r+",encoding='latin') as file:
    data = file.read()
    print(data)

它奏效了。但是我在文本文件中得到了 1 个或 2 个 URL,但没有 URL。

也许还有另一种方式,例如导入模块。
类似的东西:

import chrome
url = chrome.get_url()
print(url)

也许selenium 也可以做到这一点。但我不知道怎么做。
也许还有另一种方法可以读取包含 python 中所有链接的文件。

我想要的是它检测打开的网站,如果 mywebsite.com 打开超过 10 分钟,它会自动被阻止。系统有自己的文件:

C:\Windows\System32\drivers\etc\hosts

它会在末尾添加以下内容:

127.0.0.1 www.mywebsite.com

该网站将不再可用。

【问题讨论】:

    标签: python python-3.x google-chrome selenium url


    【解决方案1】:

    您可以使用这种方法来存储标签数据并对其进行操作:

    windows = driver.window_handles
    

    您可以使用上述方法存储窗口。

    current_window = driver.current_window_handle
    

    此方法将为您提供正在处理的当前窗口。您可以浏览“windows”列表并检查它是否是 current_window 以在选项卡之间导航。

    driver.switch_to.window(windows[5])
    

    此方法将切换到所需的选项卡,但我假设您已经拥有它。

    现在如何存储标签打开后花费的时间? 有两种方法可以做到:

    1. 在内部,通过引用 pandas 数据框或列表
    2. 读取和写入文件。

    首先你需要在脚本中导入“时间”库

    current_time=time.time()
    

    current_time 是当前时间的 int 表示。这是一个 linux 时间戳。

    在任何一种情况下,您都需要这样的结构:

    data=[]
    for i in range(0,len(windows)):
        data.append([  windows[i] , time.time() ])
    

    这将给出如下结构:

        [[window[0],1234564879],
        [window[1],1234567896],...]
    

    这是你想念的东西:

    for i in range(0,len(data)):
       if time.time()-data[i][1] > 600  # If new timestamp minus the old one is bigger than 600 seconds
           driver.switch_to(data[i][0])
           driver.close()
    

    我的个人建议是,您应该从稳定的 API 服务开始,而不是使用 selenium 来获取您想要的任何数据。我会推荐SerpApi,因为我在那里工作。它有各种刮板,包括一个 google 搜索结果刮板,它有 5000 次免费呼叫新帐户。

    【讨论】:

      猜你喜欢
      • 2018-06-08
      • 1970-01-01
      • 2017-01-25
      • 2021-09-08
      • 2020-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多