【问题标题】:Using rvest, xml2 and selector gadget for webscraping results in xml_missing <NA>使用 rvest、xml2 和选择器小工具进行网页抓取会导致 xml_missing <NA>
【发布时间】:2020-05-15 03:29:57
【问题描述】:

我正在尝试从以下 URL 抓取信息:

https://www.google.com/search?q=812-800%20H%20St%20NW

我想检索突出显示的“812 H St NW”:[target][1]

选择器小工具(chrome扩展)建议使用以下节点“.desktop-title-content”

但是,结果我得到了一个 NA,我不知道如何解决这个问题。

这是我的代码:

link <- "https://www.google.com/search?q=812-800%20H%20St%20NW"
xml2::read_html(link) %>% 
  rvest::html_node(".desktop-title-content") %>%  rvest::html_text()

[1] NA

谢谢 [1]:https://i.stack.imgur.com/mzY75.png

【问题讨论】:

    标签: r web web-scraping rvest xml2


    【解决方案1】:

    当 SelectorGadget 不能很好地帮助你时,我认为你想检查源页面。在这种情况下,您只需要在&lt;title&gt;&lt;/title&gt; 之间查找文本。我在文本中有一些额外的文本(即 - 谷歌搜索)。所以我最后把它删除了。你可能没有那个。

    read_html("https://www.google.com/search?q=812-800%20H%20St%20NW") %>% 
    html_nodes("title") %>% 
    html_text() %>%
    sub(pattern = " -.*$", replacement = "")
    
    #[1] "812-800 H St NW "
    

    【讨论】:

      【解决方案2】:

      看起来我想要获取的内容是由 javascript 生成的。因此,我需要按照本教程创建一个 .js 文件并使用 phantom JS 访问它:https://www.datacamp.com/community/tutorials/scraping-javascript-generated-data-with-r

      然后,我将能够使用 rvest 抓取正确的内容。

      不幸的是,我需要为大约 2000 个不同的链接执行此操作。我将寻找自动创建 2000 个“.js”文件的解决方案。

      感谢您的回答。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-13
        • 1970-01-01
        • 1970-01-01
        • 2015-09-06
        • 1970-01-01
        • 2017-10-27
        • 2019-10-11
        相关资源
        最近更新 更多