日期:2014-05-18  浏览次数:20754 次

急!用户提出了难以解决的问题,如何从外部网站获取数据后进行再处理?
用户提出了难以解决的问题,如何从外部网站获取数据后进行再处理?

从用户提供的几个外部网站上可以通过网站提供的页面进行信息查询,然后将查询结果页面中的数据列表部分取出,再将这些数据进行整理(分类、排序),最后在自己的网站页面上展现,这种问题好象从来没有听说过,请大家帮忙。先谢谢了。

------解决方案--------------------
也没有什么头绪,帮楼主顶一下
------解决方案--------------------

我帮你从网上找的一段程序:

public static String readHtmlFile(String urlPath)
{
String htmlFile = " ";
try
{
URL url = new URL(urlPath);
URLConnection urlConnection = url.openConnection();
urlConnection.setAllowUserInteraction(false);
InputStream urlStream = urlConnection.getInputStream();
InputStreamReader sr = new InputStreamReader(urlStream, "GBK ");

int byteRead = 0;
char[] buffer = new char[8192];
while ((byteRead = sr.read(buffer, 0, 8192)) != -1)
{
String str = new String(buffer,0,byteRead);
String r = "( <td align= 'center '> )(.*)( </td> ) ";

Pattern s = Pattern.compile(r);
Matcher m = s.matcher(str);
boolean T = m.matches();

if(T)
{
htmlFile=htmlFile+m.group(2);
}

htmlFile+=new String(buffer,0, byteRead);
}
}
catch (IOException e)
{
System.out.println( "error : " + e.getMessage());
}
}

这段代码中只有正则那儿改对了就OK了!

可是,我也想问个问题,如果这个数据是分页显示的,那怎么读取?

------解决方案--------------------
你这个最好是劝说用户放弃这个想法 依赖外部网站 如果人家改版了 不办了 你从哪搞数据
如果是一些专门提供数据的网站还行
------解决方案--------------------

//想从页面中取出总页数,再组成链接地址访问不同分页数据
----------------------
你说的我也想过,可是现在分页一般都是同一地址的链接,想获取分页的东西看来还是很困难~

------解决方案--------------------
我是专门做这个的,可惜需要大量的jar包来实现.....

主要用到httpclient postmethod getmethod
------解决方案--------------------
这个的确很麻烦
download到本地然后处理吧
------解决方案--------------------

偶也再来关注一下!
httpclient postmethod getmethod ?
讲讲思路。

------解决方案--------------------
解决办法:
1,先获取网页内容
2,对网页内容分析,把相应数据取出来


------解决方案--------------------
你的页面接受输入的参数,在接口里面针对每个网站的提交方式分别用GET POST得到第一页,处理返回的字符串并判断有无分页,有则截取参数循环取下一页,无则直接返回处理结果.
------解决方案--------------------
webService

------解决方案--------------------
httpclient加上正则分析,需要具体情况具体写实现.
------解决方案--------------------
偶也再来关注一下!
httpclient postmethod getmethod ?
讲讲思路。
------解决方案--------------------
无所谓思路了,简单点说,就是把别人页面的取回来分析而已,重要的是响应速度,不是每次都到别人网站抓取,可以在服务器上缓存,根据网站访问的频率或者根据别人网站的更新频率定时更新缓存就可以了.
------解决方案--------------------
我看着好像不太难啊

提交请求 得到响应页面的代码 用正则表达式分析