gpt4 book ai didi

java - 如何使用jsoup访问子类

转载 作者:行者123 更新时间:2023-11-30 07:26:53 25 4
gpt4 key购买 nike

我要访问此网页:https://www.google.com/trends/explore#q=ice%20cream并提取中心线图中的数据。 html文件是(这里我只粘贴我使用的部分。):

  <div class="center-col">
<div class="comparison-summary-title-line">...</div>
...
<div id="reportContent" class="report-content">
<!-- This tag handles the report titles component -->
...
<div id="report">
<div id="reportMain">
<div class="timeSection">
<div class = "primaryBand timeBand">...</div>
...
<div aria-lable = "one-chart" style = "position: absolute; ...">
<svg ....>
...
<script type="text/javascript">
var chartData = {...}

我使用的数据存储在脚本部分(最后一行)。我的想法是首先获取“report-content”类,然后选择脚本。我的代码如下:

  String html = "https://www.google.com/trends/explore#q=ice%20cream";
Document doc = Jsoup.connect(html).get();

Elements center = doc.getElementsByClass("center-col");
Element report = doc.getElementsByClass("report-content");

System.out.println(center);
System.out.println(report);

当我打印“center”类时,我可以获得除“report-content”之外的所有子类内容,而当我打印“report-content”时,结果只是这样:

      <div id="reportContent" Class="report-content"></div>

我也尝试这个:

  Element report = doc.select(div.report-content).first();

但仍然根本不起作用。我怎样才能在这里获取脚本中的数据?我感谢你的帮助!!!

最佳答案

试试这个网址:

https://www.google.com/trends/trendsReport?hl=en&q=${keywords}&tz=${timezone}&content=1

哪里

  • ${keywords}是一个编码的空格分隔的关键字列表
  • ${timezone}是 Etc/GMT* 形式的编码时区

DEMO

示例代码

String myKeywords = "ice cream";
String myTimezone = "Etc/GMT+2";

String url = "https://www.google.com/trends/trendsReport?hl=en&q=" + URLEncoder.encode(keywords, "UTF-8") +"&tz="+URLEncoder.encode(myTimezone, "UTF-8")+"&content=1";

Document doc = Jsoup.connect(url).timeout(10000).get();
Element scriptElement = doc.select("div#TIMESERIES_GRAPH_0-time-chart + script").first();

if (scriptElement==null) {
throw new RuntimeException("Unable to locate trends data.");
}

String jsCode = scriptElement.html();
// parse jsCode to extract charData...

引用文献:

关于java - 如何使用jsoup访问子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36708246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com