此bounty已结束。此问题的答案可获得+50的信誉奖励。奖励宽限期将在22小时后结束。8oris正在寻找来自信誉良好来源的答案。
我想知道Ublock Origin使用Python(运行在Linux服务器上,所以没有GUI)和Selenium(带有firefox驱动程序)检测到的被屏蔽的跟踪器的数量。我不需要真的屏蔽它们,但我需要知道有多少。
Ublock Origin有一个记录器(https://github.com/gorhill/uBlock/wiki/The-logger#settings-dialog),我想把它扔掉。
此记录器可通过如下URL获得:moz扩展名://* fc 469 b55 -3182-4104-a95 c-6 b 0 b4 f87 cf 0 f */logger-ui.html#_其中斜体部分是Ublock源插件的UUID。
在这个日志记录器中,对于每个条目,都有一个div,其class设置为“logEntry”(下面截图中的黄色长方形),我想获取绿色长方形中的数据:
到目前为止,我得到了这个:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.options import Options as FirefoxOptions
browser_options = FirefoxOptions()
browser_options.headless = True
# Activate add on
str_ublock_extension_path = "/usr/local/bin/uBlock0_1.45.3b10.firefox.signed.xpi"
browser = webdriver.Firefox(executable_path='/usr/loca/bin/geckodriver',options=browser_options)
str_id = browser.install_addon(str_ublock_extension_path)
# Getting the UUID which is new each time the script is launched
profile_path = browser.capabilities['moz:profile']
id_extension_firefox = "uBlock0@raymondhill.net"
with open('{}/prefs.js'.format(profile_path), 'r') as file_prefs:
lines = file_prefs.readlines()
for line in lines:
if 'extensions.webextensions.uuids' in line:
sublines = line.split(',')
for subline in sublines:
if id_extension_firefox in subline:
internal_uuid = subline.split(':')[1][2:38]
str_uoo_panel_url = "moz-extension://" + internal_uuid + "/logger-ui.html#_"
ubo_logger = browser.get(str_uoo_panel_url)
ubo_logger_log_entries = ubo_logger.find_element(By.CLASS_NAME, "logEntry")
for log_entrie in ubo_logger_log_entries:
print(log_entrie.text)
考虑到print(browser.page_source)
会显示一些相关的html代码,使用这个“奇怪”的url和moz-extension://似乎是可行的。
问题:ubo_logger.find_element(By.CLASS_NAME, "logEntry")
什么也没得到。我做错了什么?
1条答案
按热度按时间5tmbdcev1#
我发现这个很管用:
然后,您还可以执行以下操作:
这会将生成的文本转换为int。