首页 > 解决方案 > 网页抓取 - 代码适用于一个站点但不适用于另一个站点

问题描述

我正在完成一个项目,试图从零售网站上刮下地址/邮政编码。大多数网站要求您单击商店的链接以获取地址/邮政编码。对于 Argos,我编写了以下代码:

argos<-read_html("https://www.argos.co.uk/stores/? 
clickOrigin=header:storelocator:stores#storeslist")
storelist<-argos %>%
html_nodes(".azsl-link")%>%
html_attr("href")
storelist<-data.frame(storelist)
storelist

这给出了 Argos 商店的所有链接的完整列表。然后我编写了这个函数来将地址数据拉到一个列表中:

x<-c(1:nrow(storelist))

for (i in 1:nrow(storelist)){
     argos<-read_html(paste0("https://www.argos.co.uk",storelist[i,]))
     address<-argos%>%
     html_nodes(".store-info")
     html_text("postalCode")
x[i]<-address
}

然后将其输出到 csv。我遇到的这个问题是当我尝试为 Halfords 网站重新创建这些步骤时,html_attr("href")返回 NA 值。我肯定使用了正确的类(使用 selectorgadget 检查),当我使用 html_text("href")它时,它会返回商店链接的文本。

有谁知道为什么会这样?

标签: rweb-scraping

解决方案


推荐阅读