Jsoup没有返回重定向链接的数据

时间:2016-09-25 05:40:12

标签: android jsoup

我正在加载一个网站,一旦完成就会重定向到新网页。我希望重定向的网站应该被jsoup解析并返回。以下是我在Android Studio中使用的代码:

class RetrieveListTask1 extends AsyncTask<String, Void, List<String>> {
    Document doc;
    protected List<String> doInBackground(String... urls) {

        try {
             doc = Jsoup.connect("https://mahabhulekh.maharashtra.gov.in/Pune/Pune.html").get();
            Log.d("Element : ",doc.toString());

        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
        return null;
    }

上面提到的链接重定向到https://mahabhulekh.maharashtra.gov.in/Pune/Home.aspx。您可以查看它。 我无法直接加载https://mahabhulekh.maharashtra.gov.in/Pune/Home.aspx,就像我直接加载它一样,它会转移回主页。

1 个答案:

答案 0 :(得分:0)

重定向实际上是通过提交表单的Javascript代码执行的。 希望我们可以用Jsoup提交表格。

// Load document as usual...
Document doc = Jsoup.connect("https://mahabhulekh.maharashtra.gov.in/Pune/Pune.html").get();

// Find the form
FormElement form = (FormElement) doc.getElementById("frmrd");
if (form == null) {
    // Form not found...
} else {
    doc = form.submit().execute().parse();
    System.out.println("Document base uri: " + doc.baseUri());
    System.out.println("Content: " + doc.outerHtml());
}

OUTPUT(截断)

Document base uri: https://mahabhulekh.maharashtra.gov.in/Pune/Home.aspx
Content: <!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>

</title> 
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
  <link href="Style/MainStyle.css" rel="stylesheet">
  <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
  <script type="text/javascript">
        window.onload = function divisionName() {
            switch (document.getElementById('param').value) {
                case "1":
                    document.getElementById('divisionName').innerHTML = 'अमरावती विभाग';
...

另见: