【问题标题】:how to get this hidden field?如何获得这个隐藏字段?
【发布时间】:2017-06-13 07:05:37
【问题描述】:

我有这段 HTML:

<li class="hidden-xs-inline">
 <a class='page-link' href="/acne-scars-treatment/answers?page=226" data-page="226">
</a>
</li>

我如何通过 Jsoup 使用 Java 获得号码 226

我使用了这个代码:

Document doc=Jsoup.connect(topic_link).get();

Elements elements = doc.select("li.hidden-xs-inline > a.page-link");

return elements.text();

但它没有返回我想要的数字!

有什么想法!?

【问题讨论】:

    标签: java web-crawler jsoup


    【解决方案1】:

    您需要的数据不在元素正文中,因此“text()”将不起作用。试试:

    elements.attr("data-page");
    

    欲了解更多信息,请查看: https://jsoup.org/apidocs/org/jsoup/select/Elements.html

    【讨论】:

      【解决方案2】:

      见下文:

      import org.apache.http.NameValuePair;
      import org.apache.http.client.utils.URLEncodedUtils;
      import org.jsoup.Jsoup;
      import org.jsoup.nodes.Document;
      import org.jsoup.select.Elements;
      
      import java.net.URI;
      import java.net.URISyntaxException;
      import java.nio.charset.Charset;
      import java.util.List;
      
      
      /**
       add following dependencies to pom.xml
      
                 <dependency>
                    <groupId>org.jsoup</groupId>
                     <artifactId>jsoup</artifactId>
                     <version>1.10.2</version>
                 </dependency>
      
                 <dependency>
                     <groupId>org.apache.httpcomponents</groupId>
                     <artifactId>httpclient</artifactId>
                     <version>4.5.3</version>
                 </dependency>
      
       */
      public class JsoupExample {
      
          public static void main(String[] args) throws URISyntaxException {
      
              String HTMLSTring = "<li class=\"hidden-xs-inline\">\n" +
                      " <a class='page-link' href=\"/acne-scars-treatment/answers?page=226\" data-page=\"226\">\n" +
                      "</a>\n" +
                      "</li>";
      
              Document html = Jsoup.parse(HTMLSTring);
      
              Elements hiddenElements = html.body().getElementsByClass("hidden-xs-inline");
      
              Elements pageLinkElements = hiddenElements.get(0).getElementsByClass("page-link");
              String href = pageLinkElements.get(0).attr("href");
      
              List<NameValuePair> params = URLEncodedUtils.parse(new URI(href), Charset.forName("UTF-8"));
      
              for (NameValuePair param : params) {
                  System.out.println(param.getName() + " : " + param.getValue());  //page : 226
              }
      
      
          }
      }
      

      【讨论】:

      • 它不起作用,给了我以下错误线程“main”java.lang.IndexOutOfBoundsException中的异常:索引:0,大小:0。加上如何在Netbeans中添加pom.xml?
      • 在 Netbeans 中,您必须将 jar 文件添加到类路径中。 jar 文件可以在这里找到jsoup.org/downloadhc.apache.org/downloads.cgi
      猜你喜欢
      • 1970-01-01
      • 2013-01-26
      • 2013-04-06
      • 2011-07-25
      • 1970-01-01
      • 1970-01-01
      • 2016-05-20
      • 1970-01-01
      • 2017-12-15
      相关资源
      最近更新 更多