Проблемы с очисткой веб-данных - автоматическая загрузка - PullRequest
1 голос
/ 11 июля 2019

Я хочу автоматически загрузить все технические документы с этого веб-сайта: https://icobench.com/ico,, когда вы решите войти на веб-страницу каждой из ICO, есть щелчок на вкладке технического документа, которая приведет вас к экрану предварительного просмотра PDF, я хочуполучить pdf-URL из сценария css с помощью rvest, но ничего не возвращается после того, как я попробовал многократный ввод на узлах

Пример проверки css одной ico:

embed id="plugin" type="application/x-google-chrome-pdf" 
src="https://www.ideafex.com/docs/IdeaFeX_twp_v1.1.pdf" 
stream-url="chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/9ca6571a-509f-4924-83ef-5ac83e431a37" 
headers="content-length: 2629762
content-type: application/pdf

У меня естьпробовал что-то вроде следующего:

library(rvest)
url <- "https://icobench.com/ico"
url <- str_c(url, '/hygh')
webpage <- read_html(url)
Item_html <- html_nodes(webpage, "content embed#plugin")
Item <- html_attr(Item_html, "src")

или

Item <- html_text(Item_html)
Item

Но ничего не возвращается, кто-нибудь может помочь?

Из приведенного выше примера, я ожидаю получитьвстроенный URL-адрес официального веб-сайта ico для документации в формате pdf, например: https://www.ideafex.com/docs/IdeaFeX_twp_v1.1.pdf

Но так как это плагин Google Chrome, его не получает пакет rvest, есть идеи?

1 Ответ

0 голосов
/ 11 июля 2019

Возможное решение:

Используя ваш пример, я бы изменил селектор для объединения, используя комбайнатор-потомок , id с атрибут = значение селектор.Это будет предназначаться для закладки whitepaper по идентификатору и дочерней ссылке по href значению атрибута;использование $ заканчивается на операторе для получения pdf.

library(rvest)
library(magrittr)

url <- "https://icobench.com/ico/hygh"
pdf_link <- read_html(url) %>% html_node(., "#whitepaper [href$=pdf]") %>% html_attr(., "href")

Опция Faster?

Вы также можете выбрать целевой тег object и его data attribute

pdf_link <- read_html(url) %>% html_node(., "#whitepaper object") %>% html_attr(., "data")

Узнайте, какие страницы подходят для целей.

Последний, вероятно, быстрее и, кажется, используется на нескольких сайтах, которые я проверял.


Решение для всех icos:

Вы можете поместить это в функцию, которая получает URL в качестве входного (URL каждого ico);функция возвращает pdf-URL или другое указанное значение, если URL-адрес не найден / css-селектор не соответствует.Вам нужно добавить немного обработки для этого сценария.Затем вызовите эту функцию через цикл всех URL-адресов ico.

...