не удалось прочитать веб-страницу с read_html, используя пакет rvest от r - PullRequest
3 голосов
/ 09 мая 2019

Я пытаюсь почистить местоположение обозревателей продуктов из Амазонки. Например, эта веб-страница

[https://www.amazon.com/gp/profile/amzn1.account.AH55KF4JK5IKKJ77MPOLHOR4YAQQ/ref=cm_cr_dp_d_gw_tr?ie=UTF8][1]

Мне нужно получить HAINESVILLE, ILLINOIS, United States

Я использую пакет rvest для webscraping.

Вот что я сделал:

library(rvest)       
url='https://www.amazon.com/gp/profile/amzn1.account.AH55KF4JK5IKKJ77MPOLHOR4YAQQ/ref=cm_cr_dp_d_gw_tr?ie=UTF8'
page = read_html(url)

Я получил ошибку, как показано ниже:

Error in open.connection(x, "rb") : HTTP error 403.

Но, следующие работы:

con <- url(url, "rb")
page = read_html(con)

Однако со страницей, которую я прочитал, я не смог извлечь какой-либо текст. Например, я хочу извлечь местоположение рецензента.

page %>%
    html_nodes("#customer-profile-name-header .a-size-base a-color-base")%>%
    html_text()

У меня ничего нет

character(0)

Может кто-нибудь помочь понять, что я сделал не так? Заранее большое спасибо.

1 Ответ

0 голосов
/ 10 мая 2019

Это должно работать:

library(dplyr)
library(rvest)
library(stringr)

# get url
url='https://www.amazon.com/gp/profile/amzn1.account.AH55KF4JK5IKKJ77MPOLHOR4YAQQ/ref=cm_cr_dp_d_gw_tr?ie=UTF8'

# open page
con <- url(url, "rb")
page = read_html(con)

# get the desired information, using View Page Source
page %>%
  html_nodes(xpath=".//script[contains(., 'occupation')]")%>%
  html_text() %>% as.character() %>% str_match(.,"location\":\"(.*?)\",\"personalDescription") -> res

res[,2]
...