gpt4 book ai didi

r - 为什么我的 SelectorGadget 在使用 R 进行 Webscraping 时不选择某些节点

转载 作者:行者123 更新时间:2023-12-05 05:33:31 27 4
gpt4 key购买 nike

所以我在 R 中编写了下面的代码,用于在给定站点中进行网络抓取 - 而在其他站点中,此代码有效(当然是在选择了所需的节点之后),这里它不返回任何内容。似乎网站本身在最初打开时不允许选择此类内容,即使使用鼠标指针也是如此。所以我想知道如何绕过这个(因为它也发生在其他一些网站上)。

install.packages('rvest')
install.packages('stringr')
install.packages('magrittr')
install.packages('tidyverse')
library(rvest)
library(stringr)
library(magrittr)
library(tidyverse)

#Pirmais
url_base <- "https://alkoutlet.lv/dzerieni/stiprie/rums.html?page="
l_out <- 2
urls <- paste0(url_base, seq(1, by = 1, length.out = l_out))
urls
# Helper function for parsing overview


parse_overview <- function(x){
tibble(
title = html_text(html_nodes(x, '.ProductCard-Name_isLoaded'), TRUE),
price = html_text(html_nodes(x, '.ProductCard-PriceWrapper'), TRUE),
description = html_text(html_nodes(x, '.ProductCard-ShortSpecification'), TRUE),
link = str_trim(html_attr(html_nodes(x, '.ProductCard-Name_isLoaded'), 'href'))%>%paste("https://alkoutlet.lv",.,sep=""))
}

# Scrape overview
Result <- urls %>%
map(read_html) %>%
map_df(parse_overview)

View(Result)

这是网站中关于朗姆酒的部分的前 2 页 - 我正在尝试抓取价格、描述和名称(还有链接,但我不确定我是否选择了正确的节点)。

有没有人知道如何让它发挥作用?最初打开时,该站点似乎没有提供可供选择的节点,因此这可能是对此的某种预防措施 - 那么如何绕过它呢?

最佳答案

信息未加载为 HTML。我建议将此方法与 httr2 一起使用,以像网站那样请求数据。价格信息位于嵌套数据框 price_range 中。

library(tidyverse)
library(httr2)

'https://alkoutlet.lv/graphql?hash=2951167027&sort_1={"name":"ASC"}&filter_1={"price":{},"category_id":{"eq":13},"customer_group_id":{"eq":"0"}}&pageSize_1=24&currentPage_1=2&_currency=""' %>%
request() %>%
req_perform() %>%
resp_body_json(simplifyVector = TRUE) %>%
.$data %>%
.$products %>%
.$items %>%
as_tibble()

# A tibble: 24 x 23
id sku name type_id stock~1 volum~2 alco_~3 sugge~4 categ~5 goodW~6 price~7 thumb~8
<int> <chr> <chr> <chr> <chr> <int> <int> <chr> <list> <lgl> <dbl> <chr>
1 642 366419 Rums Co~ simple IN_STO~ 82 83 NA <df> NA 1.76 /imp/o~
2 634 366433 Rums Co~ simple IN_STO~ 82 83 NA <df> NA 1.26 /imp/o~
3 631 366443 Rums Co~ simple IN_STO~ 82 83 NA <df> NA 1.26 /imp/o~
4 672 366310 Rums Co~ simple IN_STO~ 82 813 NA <df> NA 1 /imp/o~
5 3148 366584 Rums Da~ simple IN_STO~ 82 835 NA <df> NA 4 /3/6/3~
6 3147 366589 Rums Da~ simple IN_STO~ 82 835 NA <df> NA 4 /3/6/3~
7 2644 364746 Rums De~ simple IN_STO~ 82 835 672 <df> NA 3 /3/6/3~
8 2595 366565 Rums De~ simple IN_STO~ 82 894 672 <df> NA 3 /3/6/3~
9 2896 364747 Rums De~ simple IN_STO~ 82 835 672 <df> NA 3 /3/6/3~
10 810 362939 Rums De~ simple IN_STO~ 82 83 NA <df> NA 4 /3/6/3~
# ... with 14 more rows, 17 more variables:
# price_range$minimum_price$discount$percent_off <dbl>,
# price_range$minimum_price$final_price <df[,2]>, $$final_price_excl_tax <df[,2]>,
# $$regular_price <df[,2]>, $$regular_price_excl_tax <df[,2]>, thumbnail$url <chr>,
# small_image <df[,2]>, short_description <df[,1]>, stock_item <df[,2]>,
# special_from_date <chr>, special_to_date <chr>, price_tiers <list>, attributes <list>,
# url <chr>, review_count <int>, rating_summary <int>, mp_label_data <list>, and ...
# i Use `print(n = ...)` to see more rows, and `colnames()` to see all variable names

关于r - 为什么我的 SelectorGadget 在使用 R 进行 Webscraping 时不选择某些节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73813377/

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