【问题标题】:Webscraping in R: Why does my loop return NA?R 中的 Web Scraping:为什么我的循环返回 NA?
【发布时间】:2020-04-02 15:24:24
【问题描述】:

我之前在这里发布过同样的问题,但是另一个帖子正在死去,我越来越绝望了。

我正在尝试使用 rvest 等来抓取网页。大多数东西都有效,但现在我需要 R 循环遍历链接列表,它给我的只是 NA。

这是我的代码:

install.packages("rvest")

site20min <- read_xml("https://api.20min.ch/rss/view/1")

urls <- site20min %>% html_nodes('link') %>% html_text()

我需要下一个,因为前两个链接 api 让我直接返回主页

urls <- urls[-c(1:2)]

如果我现在打印我的链接,它会给我一个包含 109 个链接的列表。

urls

现在这是我的循环。我需要它给我第一个 url 链接,以便我可以 read_html

我正在寻找类似的内容:“https://beta.20min.ch/story/so-sieht-die-coronavirus-kampagne-des-bundes-aus-255254143692?legacy=true”。

我使用 break 所以它只显示第一个链接,但我得到的只是 NA。

for(i in i:length(urls)) {
  link <- urls[i]
  break
} 
link

如果我能做到这一点,我想我可以用 rvest 来处理剩下的事情,但我已经尝试了几个小时,但还是一无所获。

感谢您的帮助。

【问题讨论】:

  • 是不是因为i:length(urls)应该是1:length(urls)?更好的是,seq_along(urls)

标签: r loops web-scraping rvest


【解决方案1】:

你可以试试

for(i in 1:length(urls)) {
  link <- urls[i]
  break
} 
link

改为?

【讨论】:

  • 就是这样。你让我开心!
猜你喜欢
  • 1970-01-01
  • 2021-09-23
  • 2019-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-05
  • 1970-01-01
  • 2023-02-24
相关资源
最近更新 更多