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

关于抓取网页数据!!!
昨天我去面试一家公司,那老板说你回去用jsp做一个项目,好了你就可以上班了.....

要求是可以从指定网页中抓取需要的数据。
例如:我在baidu上搜索“电视”,那么我要从他返回的页面上抽取他的关键字!(注意:只是抽取客户端显示网页的数据)

当着为老板提到这个题目时,我就想到了“网络爬虫”。
我是这样想的:1.做一个jsp页面,向其中输入一条信息,然后由它转发到baidu。
  2.然后接收、下载返回的页面。
  3.把返回的html网页当成一个xml文件那样逐条逐条的分析、过滤。
  4.对过滤好的数据进行整理后,抽取其中我需要的部分,然后再返回到自己的jsp页面进行显示!

以上就是我的思路,请各位大神们指点指点,还有什么需要注意和改进的。
对于接收过来的页面,如何进行分析,过滤,我的思绪不是很清新,欢迎大家向我提各种建议,和提醒我那些需要注意的!


------解决方案--------------------
建议楼主重新找一家公司。

这算什么嘛,面试时说说思路和想法就行了,还要回去做个东西给他?
------解决方案--------------------
你可以让做一个中转站,接受客户的请求,然后自己向百度发送请求,然后拿到他的响应
然后对响应流做处理...至于处理的办法....
我自己也没有特别多的经验,你问的专家在他的网站上有他自己写的上传文件的类的源代码,里面有些对于这些流的处理的部分代码,你可以参考下.


------解决方案--------------------
1 抓取
2 正则匹配

OVER
------解决方案--------------------
来看热闹的。。话说回来老紫竹不是有个抓取网页的系统么。。还是我记错了。。
------解决方案--------------------
我记得竹子是有个。你去他站点看看。 http://www.java2000.net
------解决方案--------------------
探讨
1 抓取
2 正则匹配

OVER

------解决方案--------------------
正则表达式
------解决方案--------------------
感觉这个不是很难吧,,
首先用流的到网页的内容,,
其次就是把title定为关键字,,并用正则取的title值,,
------解决方案--------------------
哈哈,这个好玩,我们项目经理那天还在说有空做做这样的东西玩玩。大部分代码有了,但不过是项目中的代码,没办法外露了,呵呵。
------解决方案--------------------
建议你去看看车东的网站,http://www.chedong.com/tech/lucene.html
------解决方案--------------------
探讨
引用:
1 抓取
2 正则匹配

OVER


那一个效率好呢???

------解决方案--------------------
小偷
正则
------解决方案--------------------
1.分析baidu 检索时如何发送请求
2.用你指定keyword伪造一个请求
3.使用apache common-httpclient(我忘了是不是这个)去获取baidu网页的内容
4.使用正则表达式对网页内容做抓取
------解决方案--------------------
路过。。。学习了,好象前几天哪里刚看到过类似的问题,
AJAX抓取结果,正则等方法处理结果流,显示处理结果,对结果存在多页的情况怎么处理啊?
------解决方案--------------------
多页时先用正则表达获取网页底下的页码的url 循环获取它 然后又是重复的发送网页请求 用正则获取想要的内容 lucene是个好东东 如果工作需要可以好好看看 不过 你既然要把keyword发给baidu baidu会给你把检索工作做了的 还是不用使用它了 学习这个东西需要时间
------解决方案--------------------
正则~
------解决方案--------------------
你用httpclient 模拟cookie 等 抓取整个数据 然后正则匹配,抓取相关的!我就做过这个东西!但有验证码的 有点困难!
------解决方案--------------------
不知道,楼主解决了没有,建议你可以去看一下nutch,这是一个从 抓取网页到页面分析,到建索,到查询,都完整实现的搜索引擎,是开源的
引用:
引用:
1 抓取
2 正则匹配

OVER


那一个效率好呢???

楼主的思路,其实就 这两步的具体解释,1,抓取,就是楼主说的 :“网络爬虫”。
我是这样想的:1.做一个jsp页面,向其中输入一条信息,然后由它转发到baidu。
2.然后接收、下载返回的页面。
2,正则匹配就是指楼主提到的: 3.把返回的html网页当成一个xml文件那样逐条逐条的分析、过滤。
4.对过滤好的数据进行整理后,抽取其中我需要的部分
然后再返回到自己的jsp页面进行显示!这一步,其实就是nutch中的查询了
以上的东西,在nutch中都已经实现了,可以参考下 

------解决方案--------------------