我试图刮Kickstarter。但是,我没有得到一个结果,当我试图获得的网址,指的是项目。
这应该是结果之一:
https://www.kickstarter.com/projects/1534822242/david-bowie-hunger-city-photo-story?ref=category_ending_soon
这是我代码:
编码:
main.page1 <- read_html(x ="https://www.kickstarter.com/discover/advanced?
category_id=1&sort=end_date&seed=2498921&page=1")
urls1 <- main.page1 %>% # feed `main.page` to the next step
html_nodes(".block.img-placeholder.w100p") %>% # get the CSS nodes
html_attr("href") # extract the URLs
有人看出我哪里做错了吗?
1条答案
按热度按时间fcwjkofz1#
首先声明您使用的所有软件包-我不得不去搜索才意识到我需要
rvest
:获取HTML:
就目前而言,每个项目的数据都被隐藏在一堆div中的
data-project
属性中。浏览器中的一些Javascript(我怀疑是使用React框架构建的)通常会填充其他div,并获取图像、格式化链接等。但您刚刚获取了原始HTML,因此无法使用。但原始数据是....所以....相关的div看起来是类“react-disc-landing”,因此这会以文本字符串的形式获取数据:
这些内容看起来是JSON字符串:
因此,让我们使用
rjson
包来解码第一个:jdata
现在是一个非常复杂的嵌套列表。请使用str(jdata)
查看其中的内容。我不确定您需要其中的哪一部分,但可能是以下URL:如果不是,则所需的URL必须在该结构中的某个位置。
对
data[[i]]
重复以上步骤以获取所有链接。请注意,您应该检查允许您执行此操作的站点T+ C,并查看是否有您真正应该使用的API。