如何使用 rvest 来抓取这个 table?环形?

How to use rvest to scrape this table? Loop?

我正在尝试 'scrape' 来自网站(名称)的一些数据。我知道如何获得列表中的第一个名字 -- 但我需要以相同的方式保存几千个名字。

这是我的代码:


library(rvest)
library(tidyverse)

url <- ("https://www.advokatsamfundet.se/Advokatsamfundet-engelska/Find-a-lawyer/Search-result/?firstname=&lastname=&companyname=&postalcity=&country=4401&spokenlanguage=&sortingcity=&positions=102001")


names <- url %>% 
  read_html() %>% 
    html_elements(xpath = '/html/body/div[3]/div/div/main/div[2]/div[2]/div[1]/a') %>% 
  html_text()

这给了我列表中的第一个名字,因为它在 table。

名称遵循以下简单结构:

'/html/body/div[3]/div/div/main/div[2]/div[2]/div[1]/a')
'/html/body/div[3]/div/div/main/div[2]/div[3]/div[1]/a')
'/html/body/div[3]/div/div/main/div[2]/div[4]/div[1]/a')

请注意,我们为每个名称增加 1。它结束于 6212.

我开始研究一个函数,但我一无所获。 无论如何,它就在这里——但它不起作用,我认为它可能是一条死胡同。

scrape_fun <- function(.x){
  names %>% 
  html_elements(xpath = '/html/body/div[3]/div/div/main/div[2]/div[.x]/div[1]/a') %>% 
  html_text()
}

关于如何让它工作有什么建议吗?所有 6212 个名字?

试试这个?

library(rvest)
library(tidyverse)

url <- ("https://www.advokatsamfundet.se/Advokatsamfundet-engelska/Find-a-lawyer/Search-result/?firstname=&lastname=&companyname=&postalcity=&country=4401&spokenlanguage=&sortingcity=&positions=102001")

names<- NULL
for (i in 1:6212){
names[i]<- url %>% 
  read_html() %>% 
    html_elements(xpath = paste0("'/html/body/div[3]/div/div/main/div[2]/div[",i,"]/div[1]/a'") )%>% 
  html_text()

}

您可以使用以下 css 模式来 select 他们

library(magrittr)
library(rvest)

people <- read_html("https://www.advokatsamfundet.se/Advokatsamfundet-engelska/Find-a-lawyer/Search-result/?firstname=&lastname=&companyname=&postalcity=&country=4401&spokenlanguage=&sortingcity=&positions=102001") %>%
  html_nodes(".c-list .o-flex__item:nth-child(1) > [href]") %>%
  html_text()

此 selects 用于 href 属性,在第一个子元素(最左边的 中,class o-flex__item,它们与 class c-list 有一个共享父级。 > 是一个子组合子,指定右边的是左边的直接子元素。与使用后代组合器(可以向下嵌套级别)相比,它是一种更有效和更具体的组合器。 Class css selector 是仅次于 id 的第二快方法。

另一个模式可能是 html_nodes("[href*=personid]") - 这个 selects 用于包含字符串 personid.

的所有 href 属性