Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:使用Rvest循环遍历列表_R_Web Scraping_Rvest - Fatal编程技术网

R:使用Rvest循环遍历列表

R:使用Rvest循环遍历列表,r,web-scraping,rvest,R,Web Scraping,Rvest,我试图从这个主页的所有公寓中找出价格、面积和地址 使用Rvest和xpath获取一个列表元素的数据效果很好,请参见代码,但我不知道如何获取每个列表元素的ID以循环所有元素 下面是html代码的一部分,其中包含用于公开循环所需id的数据。如何获取所有ID <a href="/expose/103049161" data-go-to-expose-id="103049161" data-go-to-expose-referrer="RESULT_LIST_LISTING" class="sli

我试图从这个主页的所有公寓中找出价格、面积和地址

使用Rvest和xpath获取一个列表元素的数据效果很好,请参见代码,但我不知道如何获取每个列表元素的ID以循环所有元素

下面是html代码的一部分,其中包含用于公开循环所需id的数据。如何获取所有ID

<a href="/expose/103049161" data-go-to-expose-id="103049161" data-go-to-expose-referrer="RESULT_LIST_LISTING" class="slick-slide" data-slick-index="1" aria-hidden="true" style="width: 268px;"><span class="slick-bg-layer"></span><img alt="Immobilienbild" class="gallery__image block height-full" src="https://pictures.immobilienscout24.de/listings/541dfd45-c75a-4da7-a831-3339264d578b-1193970198.jpg/ORIG/legacy_thumbnail/532x399/format/jpg/quality/80"></a>a831-3339264d578b-1193970198.jpg/ORIG/legacy_thumbnail/532x399/format/jpg/quality/80"></a>
下面是我当前从一个列表元素获取数据的R代码:

library(rvest)

url <- "https://www.immobilienscout24.de/Suche/S-T/P-1/Wohnung-Miete/Sachsen/Dresden"

address <- url %>% read_html(encoding = "UTF-8") %>% html_node(xpath = '//*[@id="result-103049161"]/div[2]/div[2]/div[1]/div[2]/div[2]/a') %>% html_text()
price <- url %>% read_html(encoding = "UTF-8") %>% html_node(xpath = '//*[@id="result-103049161"]/div[2]/div[2]/div[1]/div[3]/div/div[1]/dl[1]/dd') %>% html_text()
area <- url %>% read_html(encoding = "UTF-8") %>% html_node(xpath = '//*[@id="result-103049161"]/div[2]/div[2]/div[1]/div[3]/div/div[1]/dl[2]/dd') %>% html_text()

这就是你想要的吗

library("tidyverse")
library("httr")
library("rvest")

url <- "https://www.immobilienscout24.de/Suche/S-T/P-1/Wohnung-Miete/Sachsen/Dresden"

x <- read_html(url)

x %>% 
  html_nodes("#listings") %>% 
  html_nodes(".result-list__listing") %>% 
  html_attr("data-id")

我不是100%的人会尝试你的代码和更新,但在我的脑海里,我认为像rvest::html\u attr这样的东西你的\u xml\u节点列表,数据去公开id就可以了?