如何使用rvest从IMDB中剔除电影的预算值

时间:2015-10-05 19:48:38

标签: r web-scraping rvest

我曾尝试使用rvest软件包从IMDB.com中删除总计和预算值,但我不能。我的代码是:

library(rvest)    
movie <- html("http://www.imdb.com/title/tt1490017/")   
movie %>% 
html_node("#budget .itemprop") %>%     
html_text() %>%      
as.numeric()

我得到了

numeric(0)

2 个答案:

答案 0 :(得分:1)

您可以获得这样的预算值:

extract_numeric

您的示例与rvest package vignette中的示例类似。这个小插图建议你使用SelectorGadget,我用它来找到只返回Budget元素的CSS选择器。要查看该元素,请运行本系列中除最后一个管道之外的所有元素,然后您就会明白为什么我选择使用来自tidyr的rvest来解析它。

您需要使用最新版本的read_html()来运行此操作,因为我使用html()函数,该函数已替换了示例中使用的 from oauth2_provider.decorators import protected_resource User = get_user_model() @protected_resource(scopes=['ifttt']) @api_view(['GET']) def user_info(request): username = request.user.username u_id = request.user.id data = {} data['name'] = username data['id'] = u_id rst = {} rst['data'] = data return Response(rst, status=status.HTTP_200_OK) 。< / p>

答案 1 :(得分:0)

Sam Firke提供了一个非常巧妙的解决方案。我只是发布我的,以显示提取数值的不同替代方案。作为Sam Firke,我使用了SelectorGadgethtml函数似乎工作正常。我使用gsub代替了tidyr,我不知道它有什么方便的功能:

library(rvest)    
movie <- html("http://www.imdb.com/title/tt1490017/") 
movie %>% 
  html_node(".txt-block:nth-child(11)") %>%
  html_text() %>% 
  gsub("\\D", "", .) %>% 
  as.numeric()

输出:

[1] 6e+07