【问题标题】:Get text snippets from google results从谷歌结果中获取文本片段
【发布时间】:2018-02-25 06:01:29
【问题描述】:

我想从 google 结果中提取 sn-ps,我正在使用以下代码来解析 google 结果页面:

    Scanner scanner = new Scanner(System.in);
    System.out.println("Please enter the search term.");
    String searchTerm = scanner.nextLine();
    System.out.println("Please enter the number of results. Example: 5 10 20");
    int num = scanner.nextInt();
    scanner.close();

    String searchURL = GOOGLE_SEARCH_URL + "?q="+searchTerm+"&num="+num;

    Document doc = Jsoup.connect(searchURL).userAgent("Mozilla/5.0").get();

    Elements results = doc.select("//div//div//span[contains(@class, 'st')]/text()");

    for (Element result : results) {
        String linkText = result.text();
        System.out.println("Text::" + linkText );//1000+ ", URL::" + linkHref.substring(6, linkHref.indexOf("&")));
    }

它提取结果 url 和标题,问题是 sn-ps 位于“较低级别”的 html 标记中,如附图所示:

那么我该如何提取它们呢?!

【问题讨论】:

  • 如果这是java或groovy,添加这个标签(在标签中添加你的语言名称)
  • @Gilles .. 完成
  • 你能运行xpath查询吗?
  • @Gilles,我没试过……有用吗?
  • 肯定会有用的:)

标签: java html json google-search


【解决方案1】:

使用 查询:

'//em[.="Stack Overflow"]/following-sibling::text()'

'//em[text()="Stack Overflow"]/following-sibling::text()'

【讨论】:

    猜你喜欢
    • 2018-01-15
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 2014-08-25
    • 2011-07-18
    相关资源
    最近更新 更多