IBM面试题,用JAVA抓取下整个网站

问题描述

作业要求:1.给定一个网站的URL,抓取下整个网站,包括网页、图片等等。2.对该网站的所有对象进行一个统计,比如链接、图片、按钮等等分别有多少。

解决方案

解决方案二:
同问!!!是不是要解析该网站下的源代码哦?
解决方案三:
这题给的不着调啊。加入我有两个页面,分别是http://xxxxx/a和http://xxxxx/b,这两个页面没有相互引用。这算一个网站的吧?你怎么从a知道b呢?出题的弱智吧,限制条件都说不清楚
解决方案四:
1.给定一个网站的URL,抓取下整个网站,包括网页、图片等等。2.对该网站的所有对象进行一个统计,比如链接、图片、按钮等等分别有多少。分析网页的所有标签,内容、标题、图片、按钮等等。大家帮忙用JAVA编写一下,小弟在线等待,感激不尽。
解决方案五:
我上次提交的importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.net.MalformedURLException;importjava.net.URL;importjava.net.URLConnection;publicclassUrlContent{publicstaticStringgetHtmlSource(Stringurl){StringBuffercodeBuffer=null;BufferedReaderin=null;try{URLConnectionuc=newURL(url).openConnection();//读取url流内容in=newBufferedReader(newInputStreamReader(uc.getInputStream(),"gb2312"));codeBuffer=newStringBuffer();StringtempCode="";//把buffer内的值读取出来while((tempCode=in.readLine())!=null){codeBuffer.append(tempCode).append("n");}in.close();}catch(MalformedURLExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}returncodeBuffer.toString();}publicstaticvoidmain(String[]args){System.out.println(UrlContent.getHtmlSource("http://sports.163.com/zc/"));}}反馈说我理解的不对,然后回复:作业要求:1.给定一个网站的URL,抓取下整个网站,包括网页、图片等等。2.对该网站的所有对象进行一个统计,比如链接、图片、按钮等等分别有多少。
解决方案六:
不会等待牛人解答
解决方案七:
一个站还是一个页啊,一个站有千八百页,那还有办法啊.?要从网页的URL取得另一页,另一页又有,.................URLurl;HttpURLConnectionconn=null;try{url=newURL("http://baike.baidu.com/view/2125344.htm");conn=(HttpURLConnection)url.openConnection();conn.setRequestProperty("Accept-Charset","utf-8");conn.setRequestProperty("contentType","utf-8");BufferedReaderreader=newBufferedReader(newInputStreamReader(conn.getInputStream(),"gbk"));StringdownloadURL;StringBuffersb=newStringBuffer();while((downloadURL=reader.readLine())!=null){sb.append(downloadURL);}System.out.println(sb.toString());这样就可以打印出这个网页了,至于里用正则如何替换,找出按钮,图片的,那还得再弄下.}catch(Exceptione){}finally{conn.disconnect();}
解决方案八:
应该是所访问的当前页。。我不会,高手回答
解决方案九:
然后将每个网页所抓到的对象存起来。最后统计
解决方案十:
如何用正则如何替换,找出按钮,图片,内容,标题等等这才是关键,是知道正则怎么写。在线等待,感激不尽!
解决方案十一:
顶。。。。等高手解答
解决方案十二:
学习...
解决方案十三:
一个页好说,一个站的话把你抓死了,还有外面的链接!
解决方案十四:
就一个网页就可以了,别的子网页可以不管。
解决方案十五:
可使用Java的htmlpaser开源包PostMethodmethod=null;......//设置method的参数//执行post方法executeHttpMethod(client,method,3000,newArrayList());//获取返回界面BufferedInputStreamf=newBufferedInputStream(method.getResponseBodyAsStream());//保存下来即可---------------------------解析的话就搜索下载下来的文件,统计里面按钮等对应的标签就可以了
解决方案:
该回复于2009-08-12 23:14:49被版主删除
解决方案:
该回复于2009-08-12 23:14:49被版主删除
解决方案:
嗯,是的。面试后留的作业。
解决方案:
典型的网页采集!其实,有点类型搜索引擎!
解决方案:
那个可以把按钮,图片,内容,标题等等正则写出来。
解决方案:
支持万能的正则。
解决方案:
爬虫的基本原理
解决方案:
没人知道吗?汗
解决方案:
引用21楼zangxt的回复:

爬虫的基本原理

同意,偶也只是听说过.另外有相关软件支持分析页面
解决方案:
Readerreader=null;BufferedReaderbr=null;InputStreamin=null;Stringtemp="";Stringtext="";URLConnectionurlConn=(HttpURLConnection)url.openConnection();urlConn.setDoOutput(true);in=urlConn.getInputStream();in=newBufferedInputStream(in);reader=newInputStreamReader(in);br=newBufferedReader(newInputStreamReader(url.openStream(),"GBK"));逐行读文件,写入text中while((temp=br.readLine())!=null){text+=temp;temp=null;}对text进行分析即可,例如超链接匹配<a等
解决方案:
请教大家按钮的正则怎么写。
解决方案:
按钮的正则怎么写
解决方案:
顶个!
解决方案:
汗,没有会吗?
解决方案:
。。自己看开源爬虫源码去
解决方案:
我觉得这所谓的“面试题”很可疑,感觉像作业贴。
解决方案:
er...
解决方案:
我觉得这里用正则不太合适吧,既然是要解析对象,干嘛不用XML呢?将读取出来的字符串转成一个XML文档,然后使用DOM进行递归的解析该XML文档得到所有的元素,这样行不通?对于<html前面的字符我们可以过滤掉。
解决方案:
IBM不会出这样的题目的LZ不厚道忽悠人
解决方案:
引用楼主shao0408的回复:

作业要求:1.给定一个网站的URL,抓取下整个网站,包括网页、图片等等。2.对该网站的所有对象进行一个统计,比如链接、图片、按钮等等分别有多少。

看看作业要求哈哈
解决方案:
这题目有什么意思吗?
解决方案:
用搜索机器人应该可以解决
解决方案:
收藏了
解决方案:
顶个!学习下
解决方案:
网站深度的扫描:也就是生产一个网站基本层次架构(像是一棵树或森林?),然后按照这个结构一层层抓取资源,直到挖掘不下去(这个很可能会死循环的说啊,--)。只是我的想法而已,哈哈
解决方案:
关注,学习,帮顶。
解决方案:
为什么一定要正则呢?说到底正则也是字符串处理函数实现的吧。用普通的indexOf不行么?比如,你逐行读取当前网页的源代码,定义intimgCount=0;intbuttonCount=0;intlinkCount=0。然后只要匹配到type="image"或者<img的时候imgCount++匹配到type="button"或者<button的时候buttonCount++匹配到<a的时候linkCount++不就行了?最后统计各类型的控件数目。可能是我想简单了,再说非要用正则匹配,百度应该可以找到答案的。
解决方案:
引用2楼eastoneking的回复:

这题给的不着调啊。加入我有两个页面,分别是http://xxxxx/a和http://xxxxx/b,这两个页面没有相互引用。这算一个网站的吧?你怎么从a知道b呢?出题的弱智吧,限制条件都说不清楚

是小学没毕业吧。看清题目了么?
解决方案:
给个完整的撒!
解决方案:
该回复于2011-04-27 08:42:32被版主删除
解决方案:
。。坐等牛人解答
解决方案:
该回复于2011-04-27 10:17:22被版主删除

时间: 2024-10-05 17:12:40

IBM面试题,用JAVA抓取下整个网站的相关文章

html-如何用java抓取网页隐藏音频链接

问题描述 如何用java抓取网页隐藏音频链接 我想用java抓取荔枝FM网站上所有的音频文件,但是直接查看网页源码发现找不到页面的音频链接http://www.lizhi.fm/#/25734/20075765977745926,但是我用谷歌的Developer Tools能找到这个链接http://cdn.lizhi.fm/audio/2015/05/16/20075765977745926_hd.mp3,我有点不知道怎么搞了,求帮忙看看什么情况 解决方案 搜索这个页面的data-url 解决

java抓取https网页问题

问题描述 java抓取https网页问题 public static void getDocument() throws Exception{ Map<String,String> headMap=new HashMap<String,String>(); headMap.put("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8&qu

java抓取鼠标事件和鼠标滚轮事件示例_java

java抓取鼠标事件和滚轮事件 复制代码 代码如下: package demo; import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.MouseWheelEvent;import java.awt.event.MouseWheelListener; import javax.swing.JButton;import javax.swing.JFrame;import

JAVA抓取网页的图片

import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; /

使用java 抓取微信公共账号信息

问题描述 如何使用java抓取微信公共账号信息,有哪位大神能提供思路,要是有源码就更好了,有谁实现了么如何使用java抓取微信公共账号信息,有哪位大神能提供思路,要是有源码就更好了,有谁实现了么 解决方案 解决方案二:网络搜搜应该还是有解决方案的吧.

软件-java 抓取 网址 下载 图标 版本号

问题描述 java 抓取 网址 下载 图标 版本号 能不能通过一个网站地址获取我要下载的软件的下载地址,软件版本号,和软件的图标 桶过java实现

java 抓取cd音轨 open resource

问题描述 在谷歌上查遍了.找到一些C++写的CDex,还有一个Java写的jripper但是不支持windows系求高手指点..Windows上java抓取cd音轨(转成mp3格式)的开源工具谢谢 解决方案 解决方案二:该回复于2011-04-25 16:02:52被版主删除解决方案三:没人回复唉解决方案四:刚看了好多人问了这样的问题,,无解啊解决方案五:jripper可以运行在window系统中解决方案六:jripper的代码我改了些可以显示cd信息抓取音轨还要努力解决方案七:jripper是

url-使用Python抓取下一页网页数据

问题描述 使用Python抓取下一页网页数据 怎么抓取一个无论怎么跳转其url都不变的网页?通过Requests和BeautifulSoup能实现吗? http://www.szairport.com/frontapp/HbxxServlet?iscookie=C 另外其下一页的跳转指令是js写的,我该怎么通过这条指令跳转下一页,命令如下: [<a href="javascript:void(0);" onclick="page.moveNext()">

java抓取网页上天气预报的温度

问题描述 java抓取网页上天气预报的温度 我需要从一个网站上获取天气预报的温度值,我选择了新浪网 程序如下 package tianqi; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.IOException; impo