Android从网页的源码中特定标签中取值
来源:互联网 发布:电脑降温软件 编辑:程序博客网 时间:2024/05/22 08:10
最近想要做一个关于彩票的项目,好用的彩票接口都要收费,免费的次数也有限,于是从网上找到相关开奖网页,想从网页的代码中获得想要的数据,直接上代码。
import android.app.Activity;import android.os.Bundle;import android.os.StrictMode;import android.widget.ArrayAdapter;import android.widget.ListView;import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;public class MainActivity extends Activity { private String path = "http://baidu.lecai.com/lottery/draw/list/528/?agentId=5572"; ListView listview; List<String> time=new ArrayList<>(); List<String> number=new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //加上这两句代码 好像可以在主线程中进行网络访问/**************************************************/ StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads().detectDiskWrites().detectNetwork() .penaltyLog().build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects().detectLeakedClosableObjects() .penaltyLog().penaltyDeath().build());/**************************************************/ listview = (ListView) this.findViewById(R.id.ls); try { String htmlContent = HtmlService.getHtml(path); //彩票开奖时间 Pattern p = Pattern.compile("<td class=\"td1\">(.*?)</td>"); Matcher m = p.matcher(htmlContent); while(m.find()){ time.add(m.group(1)); } time.remove(time.get(0)); ArrayAdapter<String> timeAdapter=new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,time); listview.setAdapter(timeAdapter); } catch (Exception e) { System.out.println("程序发生了异常"); } //彩票开奖号码// Pattern p = Pattern.compile("<span class=\"ball_1\">(.*?)</span>");// Matcher m = p.matcher(htmlContent);// while(m.find()){// number.add(m.group(1));// }// ArrayAdapter<String> timeAdapter=new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,number);// listview.setAdapter(timeAdapter);//// textView.setText(m.group(1));//// } catch (Exception e) {// // textView.setText("程序出现异常:"+e.toString());// } }}import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;public class HtmlService { public static String getHtml(String path) throws Exception { // 通过网络地址创建URL对象 URL url = new URL(path); // 根据URL // 打开连接,URL.openConnection函数会根据URL的类型,返回不同的URLConnection子类的对象,这里URL是一个http,因此实际返回的是HttpURLConnection HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 设定URL的请求类别,有POST、GET 两类 conn.setRequestMethod("GET"); //设置从主机读取数据超时(单位:毫秒) conn.setConnectTimeout(5000); //设置连接主机超时(单位:毫秒) conn.setReadTimeout(5000); // 通过打开的连接读取的输入流,获取html数据 InputStream inStream = conn.getInputStream(); // 得到html的二进制数据 byte[] data = readInputStream(inStream); // 是用指定的字符集解码指定的字节数组构造一个新的字符串 String html = new String(data, "utf-8"); return html; } /** * 读取输入流,得到html的二进制数据 * * @param inStream * @return * @throws Exception */ public static byte[] readInputStream(InputStream inStream) throws Exception { ByteArrayOutputStream outStream = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; while ((len = inStream.read(buffer)) != -1) { outStream.write(buffer, 0, len); } inStream.close(); return outStream.toByteArray(); }}
还需要导入几个jar包,jsuop.jar,org.apache.http jar包
0 0
- Android从网页的源码中特定标签中取值
- 【Python】怎样从网页中提取特定的字符串/行?
- Python分布式爬虫前菜(2):关于提取网页源码中特定信息的技巧
- Python分布式爬虫前菜(2):关于提取网页源码中特定信息的技巧
- 从Android Launcher源码学习自定义标签
- android中查看网页源码
- android 获取当前webview显示的网页的源码和网页中框架的源码
- android 从微信分享的网页中启动APP
- 打印网页中特定内容
- Android中include和merge标签的使用(附源码)
- 网页中控制打印页面的特定部分
- 向网页中添加 特定位置的地图
- 从android源码中查看android的版本
- C/C++中从字符串中查找特定的字符
- 从源代码中提取或过滤网页标签
- netstat源码(从android源码中提取)
- Android中自定义特定颜色的Toast
- 用正则表达式抓取制定网页的特定内容(本文以抓取a标签为例)
- JS eval()函数
- GDB查看指定内存地址处的内容
- ROHC 一些备忘
- 面向对象的七大设计原则
- Linux下nginx配置https协议访问
- Android从网页的源码中特定标签中取值
- 102.数组排序方法总结和NSComparisonResult
- 网站状态异常时自动重启php-fpm的shell脚本
- 非关系型数据库NoSQL的崛起
- C++11闭包函数:Lambda表达式的使用λ
- 怎样防止App在后台运行,点击应用桌面图标重新启动?
- Android 网络延时加载框
- Date内置对象
- listView天小时分钟秒倒计时的实现