selenium 如何使用PYTHON使用Selify捕获本地文件的实时请求URL

kxeu7u2r  于 2022-11-10  发布在  Python
关注(0)|答案(1)|浏览(143)

我有一个Selify脚本设置为打开一个特定的网站,该网站每30秒请求多个URL,我需要以某种方式捕获这些请求的URL,并将它们复制到我PC上的本地文件中。
我在谷歌上搜索了很多次,发现有人推荐Browsermob-Proxy,但它似乎不符合我的需求,因为我需要实时写入文件的URL。我将在Chrome的网络开发工具中给出一张我正在谈论的需要复制到文件中的示例照片。
该站点为http://itemalert.com
以下是我每30秒需要获取的链接的示例:

弹出窗口示例:

检查元素的示例:

wnavrhmk

wnavrhmk1#

这应该会对您有所帮助:

from selenium import webdriver
import copy
import threading

global driver

def retrieve_urls():    

    threading.Timer(30, retrieve_urls).start() #Repeats the task every 30 seconds

    driver.get('webpage url') #Enter the url of the webpage here

    urls = driver.find_elements_by_class_name('pull-left epnlink')

    url_list = []

    for element in urls:
        url_list.append(element.get_attribute('href'))

    path = "Urls.txt" #Enter the path of the text file here

    f = open(path,'r')

    txt = f.readlines()

    f.close()

    for x in range(len(txt)):
        txt[x] = txt[x].strip()

    final_txt = ""

    f = open(path,'w')

    dup = copy.deepcopy(url_list)

    for x in dup:
        if x not in txt:
            final_txt += x + "\n"
            url_list.remove(x)

    for x in url_list:
        final_txt += x + "\n"

    f.write(final_txt)        

    f.close()

driver = webdriver.Chrome()

retrieve_urls()

如果你有任何错误,请让我知道。这可能是因为我没有测试我的程序(因为我在这个网站上没有帐户)。但我希望这会奏效。

相关问题