导航:首页 > 编程语言 > java抓取新闻

java抓取新闻

发布时间:2022-07-06 12:15:08

1. 关于java新闻网站的算法

问:新闻网站,如新浪网站,比如说国际足球频道,每天会有跟新。请问这块在代码设计的地方,是从数据库中读取5条最新的(按照日期)还是说做一个程序由编辑强制置顶?
答:是从数据库中读取5条最新的(按照日期)

问:如果是论坛,需要把点击最高的新闻自动排到前面,这个怎么处理,需要用到servletcontext吗 ?
答:读取点击最高的新闻记录(你想读取几条就几条),然后放到网页上去,就怎么回事.......跟你平时放其他数据没什么区别,都是根据条件取数据而已.

2. 求使用java语言抓取sina,搜狐网站上的新闻资讯的源码,或者原理说明也可~

下载一个jsoup包,并导入到项目里面。然后就可以很简便地编写爬虫了。
jsoup教程:http://www.flatws.cn/article/program/css/2011-03-22/17981.html
及jsoup中文版标准使用手册:http://www.open-open.com/jsoup/、

网上还有大量jsoup教程,使用中可能涉及到 正则表达式,这里推荐一个讲解正则表达式基本操作的:http://www.regexlab.com/zh/regref.htm

除此之外,还要考虑数据保存。你需要建立一个数据库,比如MySQL,然后将数据导入到数据库里面。这个过程可能比较困难。推荐网址:http://www.haogongju.net/art/1697604,上面有4个相关链接很有用。(其实上面讲解了抓取的全过程,含较完整的源代码。作者似乎没有使用jsoup,使用jsoup可以节省很多代码,比如截取某个标签后面的内容,使用jsoup包后一行代码就可以搞定)

最后将数据导出到word或execl里,可以使用工具Navicat ,网上很多绿色版,不用安装。

3. java 如何实现网络爬虫,爬取新闻评论,新闻内容可以获取,但是评论无法在网页源码显示。

如果评论是通过AJAX显示的,那么抓取有一定难度。
你的爬虫需要能够解释JS,并解惑JS的内容。
但如果你只针对少数的网站进行抓取,则可以针对这些网站开发专用的蜘蛛。人工分析其JS,从中找到其获取评论的AJAX接口,然后抓之。这样简单。
还可以用爬虫操作一个浏览器,通过浏览器的接口获取其运行完成后的显示的内容

4. java怎么抓取网站上的数据(比如新闻的标题

python 多省力

5. 如何用java实现新闻采集

如果代码能力不是很好的话可以借助一些软件去抓取新闻的字段
把数据抓取下来以后可以选择存入数据库当中
需要去重的话,在Java的集合框架中就有HashSet和HashMap可以对数据去重
使用带Hash的集合时一定要注意,如果是存放自定义的对象一定要重写equals方法和HashCode方法

6. 如果运用java获取其他网站的内容

简单的jsoup爬取,静态页面形式;

String url="a.atimo.cn";//静态页面链接地址
Document doc = Jsoup.connect(url).userAgent("Mozilla").timeout(4000).get();
if(doc!=null){

Elements es = doc.select("div.comments>ul>li");// System.out.println(es);
if(es!=null && es.size()>0){
for (Element element : es) {

String link = element.select("div>h3").attr("href");

String title = element.select("div>h3").text();

String author = element.select("div.c-abstract>em").text();

String content = element.select("dd>a>div.icos>i:eq(1)").text();

}

}

}

通过jsop解析返回Document 使用标签选择器,选择页面标签中的值,即可获取页面内容。

7. java 对爬取到的N个新闻页面如何做统一解析,最终拿到新闻标题和内容,因为页面布局可能不一样

新闻页面不一样,那么布局就很可能不一样。你想统一处理,这个很难。

两种方案:

  1. 每个页面,外部传入标题,正文的xpath或者css path这样你根据传入的参数就可以动态抽取了,对于你来说就是统一处理,代码写起来简单。缺点就是上万个网站需要一一配置,很烦。

  2. 就是写一个新闻正文和标题自动抽取的算法,目前网上有不少这样的算法,有根据字数最多的一段内容来算的,有根据HTML标签来计算的等等,这样既不用外部手动配置,也不用你分开处理。缺点,既然是算法自动抽取,那么存在一个准确率的问题,没法保证100%正确,毕竟HTML的使用太灵活了,各种用法都有。

8. 如何用java获取网易新闻评论

可以使用java爬虫,爬取网页的信息下来,然后用正则表达式提取出评论。

下面程序代码:

importjava.io.*;
importjava.net.*;
importjava.util.regex.*;

publicclassMain{
staticStringSendGet(Stringurl){
//定义一个字符串用来存储网页内容
Stringresult="";
//定义一个缓冲字符输入流
BufferedReaderin=null;

try{
//将string转成url对象
URLrealUrl=newURL(url);
//初始化一个链接到那个url的连接
URLConnectionconnection=realUrl.openConnection();
//开始实际的连接
connection.connect();
//初始化BufferedReader输入流来读取URL的响应
in=newBufferedReader(newInputStreamReader(
connection.getInputStream()));
//用来临时存储抓取到的每一行的数据
Stringline;
while((line=in.readLine())!=null){
//遍历抓取到的每一行并将其存储到result里面
result+=line;
}
}catch(Exceptione){
System.out.println("发送GET请求出现异常!"+e);
e.printStackTrace();
}
//使用finally来关闭输入流
finally{
try{
if(in!=null){
in.close();
}
}catch(Exceptione2){
e2.printStackTrace();
}
}
returnresult;

}

staticStringRegexString(StringtargetStr,StringpatternStr){
//定义一个样式模板,此中使用正则表达式,括号中是要抓的内容
//相当于埋好了陷阱匹配的地方就会掉下去
Patternpattern=Pattern.compile(patternStr);
//定义一个matcher用来做匹配
Matchermatcher=pattern.matcher(targetStr);
//如果找到了
if(matcher.find()){
//打印出结果
returnmatcher.group(1);
}
return"Nothing";
}

publicstaticvoidmain(String[]args){

//定义即将访问的链接
Stringurl="

//访问链接并获取页面内容
Stringresult=SendGet(url);
//使用正则匹配图片的src内容
StringimgSrc=RegexString(result,"src="(.+?)"");
//打印结果
System.out.println(imgSrc);
}
}
阅读全文

与java抓取新闻相关的资料

热点内容
喷油螺杆制冷压缩机 浏览:573
python员工信息登记表 浏览:373
高中美术pdf 浏览:156
java实现排列 浏览:510
javavector的用法 浏览:978
osi实现加密的三层 浏览:228
大众宝来原厂中控如何安装app 浏览:908
linux内核根文件系统 浏览:238
3d的命令面板不见了 浏览:520
武汉理工大学服务器ip地址 浏览:143
亚马逊云服务器登录 浏览:519
安卓手机如何进行文件处理 浏览:67
mysql执行系统命令 浏览:925
php支持curlhttps 浏览:141
新预算法责任 浏览:441
服务器如何处理5万人同时在线 浏览:246
哈夫曼编码数据压缩 浏览:421
锁定服务器是什么意思 浏览:382
场景检测算法 浏览:615
解压手机软件触屏 浏览:343