gpt4 book ai didi

r - 如何使用rvest来刮这张 table ?环形?

转载 作者:行者123 更新时间:2023-12-04 07:50:12 29 4
gpt4 key购买 nike

我正在尝试从网站(名称)“抓取”一些数据。我知道如何获得列表中的第一个名字——但我需要以同样的方式保存几千个名字。
这是我的代码:


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个名字?

最佳答案

您可以使用以下 css 模式来选择它们

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()
这将选择 href属性,在类 o-flex__item 的第一个子元素(最左边的列)中, 具有与类 c-list 共享的父级. >是一个子组合子,指定右侧的内容是左侧内容的直接子项。与使用后代组合器(可以向下嵌套级别)相比,它是一种更有效和更具体的组合器。类 css 选择器是仅次于 id 的第二快方法。
另一种模式可能是 html_nodes("[href*=personid]") - 这适用于所有 href包含字符串 personid 的属性.

关于r - 如何使用rvest来刮这张 table ?环形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67026815/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com