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

expeditioner 2007-09-05 06:00:55
用户提出了难以解决的问题,如何从外部网站获取数据后进行再处理?

从用户提供的几个外部网站上可以通过网站提供的页面进行信息查询,然后将查询结果页面中的数据列表部分取出,再将这些数据进行整理(分类、排序),最后在自己的网站页面上展现,这种问题好象从来没有听说过,请大家帮忙。先谢谢了。
...全文
309 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq4004229 2008-04-14
  • 打赏
  • 举报
回复
好一直用正则一页一页分析.有时候还要用迅雷来辅助一下
joejoe1991 2007-09-08
  • 打赏
  • 举报
回复
我看着好像不太难啊

提交请求 得到响应页面的代码 用正则表达式分析
capturesource 2007-09-08
  • 打赏
  • 举报
回复
无所谓思路了,简单点说,就是把别人页面的取回来分析而已,重要的是响应速度,不是每次都到别人网站抓取,可以在服务器上缓存,根据网站访问的频率或者根据别人网站的更新频率定时更新缓存就可以了.
lxh198308 2007-09-07
  • 打赏
  • 举报
回复
偶也再来关注一下!
httpclient postmethod getmethod ?
讲讲思路。
xlyyc 2007-09-07
  • 打赏
  • 举报
回复
httpclient加上正则分析,需要具体情况具体写实现.
expeditioner 2007-09-07
  • 打赏
  • 举报
回复
网络蜘蛛 是不是可以相对较好的解决这个问题?
大家有熟悉 java 与 网络蜘蛛 联合实现某些功能的案例吗?麻烦大家给点提示即可,我目前正在分析其是否可行。谢谢了。
ZMFKPLJ 2007-09-07
  • 打赏
  • 举报
回复
webService
capturesource 2007-09-07
  • 打赏
  • 举报
回复
你的页面接受输入的参数,在接口里面针对每个网站的提交方式分别用GET POST得到第一页,处理返回的字符串并判断有无分页,有则截取参数循环取下一页,无则直接返回处理结果.
expeditioner 2007-09-07
  • 打赏
  • 举报
回复
借助google或百度搜索引挚可以实现吗?正在研究这方面。请大家帮忙.
wwwfwww 2007-09-06
  • 打赏
  • 举报
回复
这个的确很麻烦
download到本地然后处理吧
capturesource 2007-09-06
  • 打赏
  • 举报
回复
我是专门做这个的,可惜需要大量的jar包来实现.....

主要用到httpclient postmethod getmethod
achao818 2007-09-06
  • 打赏
  • 举报
回复
mark
MayAutumn 2007-09-06
  • 打赏
  • 举报
回复

//想从页面中取出总页数,再组成链接地址访问不同分页数据
----------------------------------------------------------
你说的我也想过,可是现在分页一般都是同一地址的链接,想获取分页的东西看来还是很困难~
banditgao 2007-09-06
  • 打赏
  • 举报
回复
你这个最好是劝说用户放弃这个想法 依赖外部网站 如果人家改版了 不办了 你从哪搞数据
如果是一些专门提供数据的网站还行
expeditioner 2007-09-06
  • 打赏
  • 举报
回复
谢谢.
是的,确实有分页的问题,想从页面中取出总页数,再组成链接地址访问不同分页数据,正在分析是否可行。

这种问题是不是很常见,有没有相应的解决方案?
yown 2007-09-06
  • 打赏
  • 举报
回复
解决办法:
1,先获取网页内容
2,对网页内容分析,把相应数据取出来

MayAutumn 2007-09-06
  • 打赏
  • 举报
回复

偶也再来关注一下!
httpclient postmethod getmethod ?
讲讲思路。
expeditioner 2007-09-06
  • 打赏
  • 举报
回复
谢谢大家
to capturesource(),得知您是专门做这个的,想请教数据分页该怎么处理?根据不同网站页面的特点用代码去找总页数?
MayAutumn 2007-09-05
  • 打赏
  • 举报
回复

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

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了!

可是,我也想问个问题,如果这个数据是分页显示的,那怎么读取?
livan1038 2007-09-05
  • 打赏
  • 举报
回复
也没有什么头绪,帮楼主顶一下

81,095

社区成员

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

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