【发布时间】:2021-04-09 18:55:48
【问题描述】:
我正在尝试从网站(名称)中“抓取”一些数据。我知道如何获取列表中的第一个名字——但我需要以同样的方式保存几千个名字。
这是我的代码:
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()
这给了我列表中的名字,就像它在表格中一样。
名称遵循以下简单结构:
'/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 个名字?
【问题讨论】:
-
您可以使用 for 循环。,。但是您可能会在 NHSdatadictionaRy 包中找到一个有用的功能,尽管它主要用于
而不是
Tags
标签: r web-scraping rvest