使用按钮进行网页抓取 "show more"
web scraping with a button "show more"
我需要从该网站提取文章,包括标题、日期和 URL。
https://en.news-front.info/category/ukraine-2/
我正在使用 rvest
包,但由于存在加载其他文章的“显示更多”按钮,我很难提取它们.我该怎么做呢?我需要 2021 年 3 月之前的文章。
谢谢
在收集数据之前尝试:
webElem <- remDr$findElement(using = 'css selector', ".btn-load-more")
webElem$clickElement()
在此块之后(不确定是否需要,不幸的是您没有提供任何代码)
Sys.sleep(2)
YOUR HARVESTING CODE
这是使用“显示更多”按钮提取文章的正确解决方案
library(RSelenium)
rD1 <- rsDriver(browser = "chrome", port = 4567L, geckover = NULL,
chromever = "99.0.4844.51", iedrver = NULL,
phantomver = NULL)
remDr1 <- rD1[["client"]]
remDr1$navigate("https://en.news-front.info/category/ukraine-2/")
webElem <- remDr1$findElement(using = 'css selector', ".btn-load-more")
webElem$clickElement()
replicate(50,
{
# find button
morereviews <- remDr1$findElement(using = 'css selector', ".btn-load-more")
# click button
morereviews$clickElement()
# wait
Sys.sleep(2)
})
# Scrap the reviews
title <- xml2::read_html(remDr1$getPageSource()[[1]])%>%
rvest::html_nodes(".article-link__title") %>%
rvest::html_text() %>%
dplyr::data_frame(title = .)
title
我需要从该网站提取文章,包括标题、日期和 URL。
https://en.news-front.info/category/ukraine-2/
我正在使用 rvest
包,但由于存在加载其他文章的“显示更多”按钮,我很难提取它们.我该怎么做呢?我需要 2021 年 3 月之前的文章。
谢谢
在收集数据之前尝试:
webElem <- remDr$findElement(using = 'css selector', ".btn-load-more")
webElem$clickElement()
在此块之后(不确定是否需要,不幸的是您没有提供任何代码)
Sys.sleep(2)
YOUR HARVESTING CODE
这是使用“显示更多”按钮提取文章的正确解决方案
library(RSelenium)
rD1 <- rsDriver(browser = "chrome", port = 4567L, geckover = NULL,
chromever = "99.0.4844.51", iedrver = NULL,
phantomver = NULL)
remDr1 <- rD1[["client"]]
remDr1$navigate("https://en.news-front.info/category/ukraine-2/")
webElem <- remDr1$findElement(using = 'css selector', ".btn-load-more")
webElem$clickElement()
replicate(50,
{
# find button
morereviews <- remDr1$findElement(using = 'css selector', ".btn-load-more")
# click button
morereviews$clickElement()
# wait
Sys.sleep(2)
})
# Scrap the reviews
title <- xml2::read_html(remDr1$getPageSource()[[1]])%>%
rvest::html_nodes(".article-link__title") %>%
rvest::html_text() %>%
dplyr::data_frame(title = .)
title