急!(悬赏高分)j2me获取网页数据。

雨松MOMO 2009-08-20 06:32:20
J2ME 获取网络数据

运行j2me程序, 后台访问网页,获取网页中的每一行中文并存在数组里

最后通过 g.drawString 将这一串中文数组 显示到手机屏幕上 。 (网页格式UTF-8)


很急 很急!!在线等!!!
...全文
251 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
kf156 2009-08-24
  • 打赏
  • 举报
回复
突然发现大伙做的项目都是一阵一阵的
前段时间超多人问五子棋、这段时间都在问天气预报
建议你还是用KXML来解析,下边链接是无花大哥写的一个例子,可以看看
http://www.javaeye.com/topic/41564
money8899 2009-08-24
  • 打赏
  • 举报
回复
~~,搂住是专业人员否?
wsywl 2009-08-21
  • 打赏
  • 举报
回复
汗~~,搂住是专业人员否?
gesanri 2009-08-21
  • 打赏
  • 举报
回复
都到了这个份上了,楼主还是自己做吧,无外乎用indexOf和substring
做错了也不要紧,错了后有什么错误可以再把代码贴出来一起讨论
雨松MOMO 2009-08-21
  • 打赏
  • 举报
回复
很感谢之前的大哥,我把获取到的信息贴出来, 麻烦各位大侠帮我过滤一下, 感激不尽!!!
就要天气和气温!!! 各位帮帮忙啊。。。555555555555555



一下信息存到了一个String 里面。
<?xml version="1.0" encoding="utf-8"?>



<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

<head>

<meta http-equiv="content-type"

content="text/vnd.wap.wml; charset=utf-8" />

</head>



<card id="index" title="快快快快快快">

<a href="--------------------------------">快快快快快快</a>

<br />

<br />

<p>

[快快快快快快]

<br />

<br />

快快快快快快

</p>



今日天气:

<br />

<img src='imag/yin.png'/>/阴<br />

气温:30 ~ 22 ℃<br />

风力:

微风<br />



<br />

明日天气:

<br />

<img src='imag/duoyun.png'/>~<img src='imag/qing.png'/>/多云转晴<br />

气温:31 ~ 20 ℃<br />

风力:

微风<br />



<br />

后天天气:

<br />

<img src='imag/qing.png'/>/晴<br />

气温:33 ~ 21 ℃<br />

风力:

微风<br />



<br />



<anchor>

快快快快快快

<go href="myweatherok" method="post">

<postfield name="cityname" value="0_6_-27_-116_-105_-28_-70_-84_" />

<postfield name="provinceid" value="1" />

</go>

</anchor>

<br />

<br />

<a href="----------------">快快快快</a>

<br />

<a href="weather">快快快快</a>

<br />

<br />

<a href="-------------------------">快快快快快快快</a>

<br />

</card>

</wml>
gesanri 2009-08-21
  • 打赏
  • 举报
回复
关键是现在不知道你整个网页中除了这个天气外还有什么别的标签?有别的img吗?有别的诸如“/>/”这样的吗?如果没有的话我可以举个例子,你根据你的实际情况,改变对字符串的截取

public class TestStr {
public static void main(String args[]){
String string = "<img src='imag/zhenyu.png'/>~ <img src='imag/yin.png'/>/阵雨转阴 <br /> 气温:30 ~ 22 ℃ <br />";
String temperature;
String weather;
int i;
int j;
i = string.indexOf("<br />");
j = string.indexOf("/>/");
weather = string.substring(j+"/>/".length(), i-1);
System.out.println(weather);
string = string.substring(i+"<br />".length(),string.length());
i = string.indexOf("<br />");
temperature = string.substring(" 气温:".length(),i-1);
System.out.println(temperature);
}
}

这里我只取了一组,你要3组的话就用个循环,循环条件根据你网页内容的实际情况来设置,另外,我不建议你把它保存到数组里,数组怎么添加数据?除非你设置6个变量,把你得到的6个数据一次性都放进数组里,那就不能用循环了,建议你用集合类,由于j2me不支持arraylist或hashmap这样的,你可以用Vector,hashtable也行,不过在这没必要,就用Vector吧
隧便 2009-08-21
  • 打赏
  • 举报
回复
如果只是解 img 的话。 你就循环解 img标签就可以了。
雨松MOMO 2009-08-21
  • 打赏
  • 举报
回复
补充, 网页里面一共有3组天气情况

从<img src 任意参数/>/ 截取到 第一个<br /> 第一组
从 气温: 截取到 <br />

从<img src 任意参数/>/ 截取到 第一个<br /> 第二组
从 气温: 截取到 <br />

从<img src 任意参数/>/ 截取到 第一个<br /> 第三组
从 气温: 截取到 <br />

最后将这些返回到一个数组里面,

各位高人, 跪求~~~~~~
雨松MOMO 2009-08-21
  • 打赏
  • 举报
回复
很感谢楼上的, 可是现在还有一个问题。 我用你的代码获取到了整个网页的 并存在了一个String里面。 有什么办法可以分解它。
比如:
<img src='imag/zhenyu.png'/>~<img src='imag/yin.png'/>/阵雨转阴<br />

气温:30 ~ 22 ℃<br />
我需要解析 这个String 然后怎么把 阵雨转阴 和 30 ~ 22 ℃ 存在一个数组里面?
laigb 2009-08-21
  • 打赏
  • 举报
回复
public String requestGET(String URLString,String URL) throws IOException{
HttpConnection hpc=null;
DataInputStream dis=null;
boolean newline=false;
String content="";
try
{
hpc=(HttpConnection)Connector.open(URLString+URL);
hpc.setRequestMethod(HttpConnection.GET);
dis =new DataInputStream(hpc.openInputStream());
int character;
while((character=dis.read())!=-1)
{
if((char)character=='\\')
{
newline=true;
continue;
}
else{
if((char)character=='n'&& newline)
{
content+="\n";
newline=false;
}

else if(newline)
{
content+="\\"+(char)character;
newline=false;
}
else{
content+=(char)character;
newline=false;
}
}
}
}
catch(IOException e)
{
System.out.print("ERROR:"+e);
}
finally
{
if(hpc!=null){
hpc.close();
hpc=null;
}

if(dis!=null)
{
dis.close();
}
}

content=(unicodeTogb2312(content)).trim();
return content;
}

public static String unicodeTogb2312(String s){
if(s==null){return "";}
if(s.equals("")){return s;}
try{
return new String(s.getBytes("ISO8859_1"),"gb2312");
}
catch(Exception uee)
{
return s;
}
}


这个应该可以吧
laorer 2009-08-21
  • 打赏
  • 举报
回复
你到网上搜下 httpClient,会有一堆的代码
LeoTang2 2009-08-21
  • 打赏
  • 举报
回复
需要XML分析吗?
雨松MOMO 2009-08-21
  • 打赏
  • 举报
回复
谁帮我看看啊~~
appleone1984 2009-08-21
  • 打赏
  • 举报
回复
就是用String.indexOf()截取你自己需要的信息。不用解析所有的信息。
innerone 2009-08-21
  • 打赏
  • 举报
回复
这样需要用kxml这样的解析工具解析一下就可以……
雨松MOMO 2009-08-20
  • 打赏
  • 举报
回复
能不能来点代码一类的,看的会比较清楚!
网络咖啡 2009-08-20
  • 打赏
  • 举报
回复
使用HTTP网络编程获得,建立HTTP连接,然后使用流读取网页源代码,解析数据即可。

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧