我正在开发一个Android应用程序,它必须从网站提取数据,提取的数据将显示在应用程序的文本视图中
在尝试了我在谷歌搜索和Stackoverflow中找到的所有可能的方法后,我仍然无法处理数据,现在任何人都可以共享,如果他们已经完成了..
详细 网站:https://www.amrita.edu/campus/bengaluru
在本网站中,我希望提取最新新闻块和即将发生的事件的数据
这是代码:我使用JSOUP来提取
package out.in;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.select.Elements;
import org.w3c.dom.Document;
import android.app.Activity;
import android.os.Bundle;
import android.sax.Element;
import android.widget.TextView;
import android.widget.Toast;
public class HtmlExtracterActivity extends Activity {
/** Called when the activity is first created. */
// url
static final String URL = "https://www.amrita.edu/campus/bengaluru";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
((TextView)findViewById(R.id.tv)).setText(getdata());
}
catch (Exception ex) {
((TextView)findViewById(R.id.tv)).setText("Error");
}
}
protected String getdata() throws Exception {
String result = "";
// get html document structure
Document document = (Document) Jsoup.connect(URL).get();
// selector query
*********Need help
// check results
*********Need help
return result;
}
}
我已在Manifest文件中提供了Internet权限 和
Xml文件如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView android:text=" "
android:id="@+id/tv" android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
</LinearLayout>
我会提前感谢所需的帮助
答案 0 :(得分:0)
您没有提到您遇到的确切问题。您是否试图在此处查看返回的内容:
Document document = (Document) Jsoup.connect(URL).get();
我假设这可能是因为上述代码中缺少User-Agent。请尝试此操作,如果您仍然遇到错误,请告诉我们:
响应响应= Jsoup.connect(位置) .ignoreContentType(真) .userAgent(“Mozilla / 5.0(Windows NT 6.1; Win64; x64; rv:25.0)Gecko / 20100101 Firefox / 25.0”)
.referrer( “http://www.google.com”)
.timeout(12000) .followRedirects(真) .execute();Document doc = response.parse();用户代理
使用最新的用户代理。这是完整的清单 http://www.useragentstring.com/pages/Firefox/
超时
另外不要忘记添加timout,因为有时它需要更多 正常超时下载页面。
Referer的
将引用者设置为谷歌。
关注重定向
按照重定向进入页面。
执行()而不是get()
使用execute()获取Response对象。哪个可以帮你查一下 对于内容类型和状态代码的错误。