爬新闻,大家都是如何做的??
昨天刚用groovy写了个东东,目的是把目标网站的一些栏目的新闻(列表、和内容),用非本地缓存方式(即即时查询分析)显示自己的一个cms网站中去。
?
写了好多死代码,以前也接触过一些爬虫工具等,多是把数据爬下来以文件形式保存或数据库形式保存。
?
我先说说我自己的做法,大家讨论下,有没有更好的方法啊?做个稍微通用、灵活点的?
?
?
方式:
LAMP + Tomcat
?
1.Tomcat下一个自己写的Servlet + Groovy Script + Freemarker的MVC东东,用Groovy写了爬代码的逻辑处理并显示成html,至此有个URL对应。
?
2.Apache PHP部署个CMS(康盛的Supesite),修改了其中的template下的html.php文件(模板文件),立面直接用PHP file_get_contents(上面的URL)。
?
3.具体写爬内容的处理就是个遍历URL的html然后做字符串解析,代码可以以下面的原语构成:(以获取一个新闻列表页面中的新闻条目为例)
?
final?String beginUrl =?
def?pageRange = param('page')
?
def getNewsItem(String content){
def pat = /******/
?? }
?
def result = []
pageRange.each{
StringBuffer content = new?StringBuffer()
new Url(beginUrl + it).eachLine{line ->
//?根据目标html代码的特点获取新闻列表部分的代码段
?
}
result <<?getNewsItem(content.toString())
}
?
大概过程是这样,自己感觉死代码太多,目标网站,一修改html板式,这些代码都要再重写一遍。
大家如果碰到这样的需求,处理起来有什么好的思路否?