package com.example.jsouptest;
import android.content.Intent;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import java.util.ArrayList;
import java.util.List;
import android.os.Handler;
public class MainActivity extends AppCompatActivity {
private List<News> newsList;
private NewsAdapter adapter;
private Handler handler;
private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
newsList = new ArrayList<>();
lv = (ListView) findViewById(R.id.news_lv);
getNews();
handler = new Handler(){
@Override
public void handleMessage(Message msg) {
if(msg.what == 1){
adapter = new NewsAdapter(MainActivity.this,newsList);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
News news = newsList.get(position);
Intent intent = new Intent(MainActivity.this,NewsDisplayActvivity.class);
intent.putExtra("news_url",news.getNewsUrl());
startActivity(intent);
}
});
}
}
};
}
private void getNews(){
new Thread(new Runnable() {
@Override
public void run() {
try{
//获取虎扑新闻20页的数据,网址格式为:https://voice.hupu.com/nba/第几页
for(int i = 1;i<=20;i++) {
Document doc = Jsoup.connect("https://voice.hupu.com/nba/" + Integer.toString(i)).get();
Elements titleLinks = doc.select("div.list-hd"); //解析来获取每条新闻的标题与链接地址
// Elements descLinks = doc.select("div.list-content");//解析来获取每条新闻的简介
Elements timeLinks = doc.select("div.otherInfo"); //解析来获取每条新闻的时间与来源
Log.e("title",Integer.toString(titleLinks.size()));
for(int j = 0;j < titleLinks.size();j++){
String title = titleLinks.get(j).select("a").text();
String uri = titleLinks.get(j).select("a").attr("href");
// String desc = descLinks.get(j).select("span").text();
String time = timeLinks.get(j).select("span.other-left").select("a").text();
News news = new News(title,uri,null,time);
newsList.add(news);
}
}
Message msg = new Message();
msg.what = 1;
handler.sendMessage(msg);
}catch (Exception e){
e.printStackTrace();
}
}
}).start();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Android解析html库jsoup
共41个文件
xml:16个
png:7个
java:6个
需积分: 19 10 下载量 162 浏览量
2018-03-12
17:18:51
上传
评论
收藏 414KB ZIP 举报
温馨提示
解析html,有了这个demo,你能无比不要脸的抓别人网页数据来放到自己的项目里面,嗯,内含jsoup-1.10.2.jar包,各位流氓走过路过不要错过。附赠jsoup中文api地址https://www.ibm.com/developerworks/cn/java/j-lo-jsouphtml/
资源推荐
资源详情
资源评论
收起资源包目录
JsoupTest-master.zip (41个子文件)
JsoupTest-master
gradlew 5KB
settings.gradle 15B
.idea
runConfigurations.xml 564B
misc.xml 2KB
compiler.xml 686B
gradle.xml 626B
modules.xml 355B
copyright
profiles_settings.xml 74B
vcs.xml 180B
gradle
wrapper
gradle-wrapper.properties 230B
gradle-wrapper.jar 52KB
gradlew.bat 2KB
gradle.properties 730B
.gitignore 118B
app
src
androidTest
java
com
example
jsouptest
ExampleInstrumentedTest.java 746B
test
java
com
example
jsouptest
ExampleUnitTest.java 399B
main
AndroidManifest.xml 835B
res
mipmap-hdpi
ic_launcher.png 3KB
mipmap-xxxhdpi
ic_launcher.png 10KB
mipmap-xhdpi
ic_launcher.png 5KB
mipmap-mdpi
ic_launcher.png 2KB
drawable
icon.png 1KB
resource.png 279B
layout
news_item.xml 1KB
activity_news_display.xml 360B
activity_main.xml 442B
values-w820dp
dimens.xml 358B
values
colors.xml 208B
strings.xml 72B
styles.xml 383B
dimens.xml 211B
mipmap-xxhdpi
ic_launcher.png 8KB
java
com
example
jsouptest
NewsAdapter.java 2KB
News.java 1KB
MainActivity.java 3KB
NewsDisplayActvivity.java 718B
libs
jsoup-1.10.2.jar 342KB
.gitignore 7B
build.gradle 912B
proguard-rules.pro 637B
build.gradle 498B
共 41 条
- 1
资源评论
xieehaoa
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功