Создать вектор текущих открытых URL в Firefox, используя R - PullRequest
5 голосов
/ 08 апреля 2020

Я хотел бы использовать R для извлечения всех URL, которые в данный момент открыты в веб-браузере. Рассмотрим следующий пример:

Как можно извлечь эти два URL-адреса изнутри R, чтобы получить следующий вывод?

my_urls <- c("https://www.google.de/", "https://www.amazon.com/")
my_urls
### [1] "https://www.google.de/"  "https://www.amazon.com/"

После некоторого исследования я подозреваю, что это возможно с пакетом RSelenium , но, к сожалению, я не смог найти подходящий код R.

Ответы [ 3 ]

3 голосов
/ 17 апреля 2020

Вы можете сделать это, используя пакет RSQLite.

Получите путь вашего Firefox профиля.

Go в% APPDATA% \ Mozilla \ Firefox \ Profiles \ в вашем проводнике , Вы увидите папку вашего профиля Firefox.

enter image description here

Откройте папку и скопируйте расположение папки профиля

Установите базу данных в скопированную папку, добавив в конце файл "place.sqlite". Как только это будет установлено, вам не придется менять имя БД в следующий раз.

db<- 'C:\\Users\\{user}\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\{profilefolder}\\places.sqlite'

Затем выполните следующее:

library(RSQLite)

con <- dbConnect(drv=RSQLite::SQLite(), dbname=db)
tables <- dbListTables(con)

dt = dbGetQuery(con,'select * from moz_places' )

urls<- dt$url[dt$visit_count>0]
urls

Вывод:

[1] "https://duckduckgo.com/"                                        
[1] "http://linkedin.com/"                                           
[2] "https://linkedin.com/"                                          
[3] "https://www.linkedin.com/"                                      
[4] "https://www.sciencedirect.com/"                                 
[5] "http://stackexchange.com/"                                      
[6] "https://stackexchange.com/"

Редактировать:

Если вы хотите иметь историю просмотров на сегодня, используйте это:

dt = dbGetQuery(con,'select * from moz_places' )

dt$last_visit_date<- (as.Date(as.POSIXct(dt$last_visit_date/1000000, 
                                         origin="1970-01-01")))
urls<- dt$url[dt$visit_count>0 & dt$last_visit_date==Sys.Date()]
urls
3 голосов
/ 17 апреля 2020

Вот один из способов сделать это (на Windows, но та же идея применима и к другим платформам).

Firefox сохраняет эту информацию в файле восстановления json в каталоге профиля пользователя. , Извлечение этих данных должно быть простым, за исключением того, что Firefox сохраняет их, используя собственную версию сжатия lz4. Я не смог найти способ автоматически распаковать этот файл, используя сам Firefox, не вызывая потенциальную проблему безопасности, поэтому вместо этого пришлось полагаться на сторонний инструмент, dejsonlz4 расположенный здесь на GitHub. После того, как вы загрузили и распаковали инструмент, вы можете запустить следующее. Просто имейте в виду, что между открытием / закрытием вкладки и записью этой информации в файл восстановления может быть небольшая задержка.

2 голосов
/ 10 апреля 2020

Вы можете использовать надстройку «Экспорт вкладок» в Firefox и читать из буфера обмена в R.

enter image description here

Надстройки браузера:

Чтение из кода буфера обмена в R:

Обратите внимание, что RSelenium использует браузер без заголовка, поэтому у вас не будет доступа к текущему («без заголовка»). ) браузер, который вы открыли. То же самое относится и к другим интерфейсам, таким как Chromote .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...