【问题标题】:scraping the each of the link pages and storing it as an XML table抓取每个链接页面并将其存储为 XML 表
【发布时间】:2018-06-04 08:18:50
【问题描述】:

您好,我是使用 R 从 Internet 上抓取数据的新手,遗憾的是,我对 HTML 和 XML 知之甚少。我试图在以下父页面上抓取每个故事链接:https://news.google.com/search?q=NREGA&hl=en-IN&gl=IN&ceid=IN%3Aen 我不关心父页面上的任何其他链接,但需要创建一个包含 URL 列、故事标题和然后是页面的完整文本(可以是几段文本)。

我尝试使用 rvest 包并获得了 url,但真正的问题是查看所有文章并提取文本并将所有内容存储在一个表格中。

对于 Google 新闻应用:

library(rvest)

url <- 'https://news.google.com/search?q=NREGA&hl=en-IN&gl=IN&ceid=IN%3Aen'

webpage <- read_html(url)


data_html <- html_nodes(webpage, '.VDXfz') %>% html_att

r('href')

【问题讨论】:

    标签: r css-selectors rvest


    【解决方案1】:

    我将提供 javascript 示例,因为我不知道您正在使用的库。

    1.获取所有url的链接:

    var anchors = document.querySelectorAll("article  > a");
    for(var i in anchors)
    {
        console.log(anchors[i].getAttribute("href"));
    }
    

    2.获取每个url链接的标题:

     var headers = document.querySelectorAll("article  >  div:nth-of-type(1)");
     for(var i in headers)
     {
         console.log(headers[i].innerText);
     }
    

    3.导航到该链接后获取故事:

    var story = document.querySelector("div.full-details").innerText;
    console.log(story);
    

    这将获取一些额外的详细信息,例如顶部可见的社交媒体上的共享数量,按行编写等。如果您只想要没有这些详细信息的正文,您可以使用“document.xml”获取所有段落元素。 querySelectorAll("div.full-details p")" 并为它们中的每一个获取 innerText 属性,您可以稍后将它们组合起来。

    【讨论】:

    • 感谢您的回复。但我的具体要求是通过 R 或 Python 来完成。它可以通过任何包,如 rvest、XML、Rcrawler 等.....
    猜你喜欢
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多