当前位置:编程学习 > JAVA >>

求教一下~ java实现对 百度百科中 文字 的获取~

谁能给个源码 借鉴一下~
初接触JAVA~~
谢谢了~~
只要百度百科的文字,其他的不需要~ --------------------编程问答-------------------- 都大概用什么方法实现?  能不能给点提示呢? --------------------编程问答-------------------- 能举个例子是怎么个过程吗?你想实现什么啊?


--------------------编程问答-------------------- 就是 给一个百度百科词条的网址。然后能抓取该词条里的文字内容。控制台输出就行,不要求界面~
引用 2 楼 kuojia 的回复:
能举个例子是怎么个过程吗?你想实现什么啊?
--------------------编程问答-------------------- htmlparser --------------------编程问答-------------------- 或者httpClient --------------------编程问答-------------------- 写了一个非常基本的例子。

稍微跟你的需求有点不一样。

这个是,根据URL地址。获取这个网页的内容,然后存到一个文件里面。

希望对你有帮助



package com.jiakai.web;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;


public class Spider {

public void getContentByURL(String url,String fileName) {
File file = new File(fileName);
InputStream is = null;
FileOutputStream fos = null;
try {
URL u = new URL(url);
is = u.openStream();
fos = new FileOutputStream(fileName);
byte[] b = new byte[1024];
int len = 0;
while ( (len = is.read(b)) != -1) {
fos.write(b, 0, len);
}
System.out.println("抓取成功");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fos.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}



public static void main(String[] args) {
String url = new String("http://baike.baidu.com/view/143057.htm");
String fileName = new String("c:\\baike.html");
Spider spider = new Spider();
spider.getContentByURL(url, fileName);

}

}



--------------------编程问答-------------------- 谢谢~    就是 有没有什么办法 把其中的文字提取出来,输出或者保存到一个TXT文件中呢。
引用 5 楼 cstur4 的回复:
或者httpClient
--------------------编程问答-------------------- 谢谢~ 就是 有没有什么办法 把其中的文字提取出来,输出或者保存到一个TXT文件中呢。
引用 6 楼 jiakai0419 的回复:
写了一个非常基本的例子。

稍微跟你的需求有点不一样。

这个是,根据URL地址。获取这个网页的内容,然后存到一个文件里面。

希望对你有帮助

Java code


package com.jiakai.web;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException……
--------------------编程问答--------------------


Parser parser = new Parser("http://baike.baidu.com/view/2476238.htm");
NodeList nodes = parser.parse(new NodeClassFilter(Div.class));
for(org.htmlparser.Node n:nodes.toNodeArray())
{
if(n.getText().equals("div class=\"spctrl\""))
{
System.out.println(n.getNextSibling().getText());
}
}



结果:
  (1)实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等) 

  (2)支持自动转向 

  (3)支持 HTTPS 协议 

  (4)支持代理服务器等
  1. 创建 HttpClient 的实例

  2. 创建某种连接方法的实例,在这里是 GetMethod。在 GetMethod 的构造函数中传入待连接的地址

  3. 调用第一步中创建好的实例的 execute 方法来执行第二步中创建好的 method 实例

  4. 读 response

  5. 释放连接。无论执行方法是否成功,都必须释放连接

  6. 对得到后的内容进行处理

  根据以上步骤,我们来编写用GET方法来取得某网页内容的代码。

  大部分情况下 HttpClient 默认的构造函数已经足够使用。 HttpClient httpClient = new HttpClient(); 
 . . .

你自己去下htmlparser的包

--------------------编程问答--------------------
引用 8 楼 tao355155568 的回复:
谢谢~ 就是 有没有什么办法 把其中的文字提取出来,输出或者保存到一个TXT文件中呢



如果采用我这种方法的话,那么就需要写正则表达式。

把不是文字的内容过滤掉。 --------------------编程问答-------------------- 因为很多人写页面标签非常不标准。

这个正则,我是不会写。 --------------------编程问答-------------------- 信息采集或者叫网络爬虫 ,用HttpClient+Httpparser可以针对你给定的原则去获取相应的内容
具体用法详情见官方API --------------------编程问答-------------------- 那个..  能问一个比较弱智的问题么 .. httpclient这个包怎么加到Ecliplse里...   弄了半天没弄好
引用 9 楼 cstur4 的回复:
Java code


        Parser parser = new Parser("http://baike.baidu.com/view/2476238.htm");
        NodeList nodes = parser.parse(new NodeClassFilter(Div.class));
        for(org.htmlparser.Node n:no……
--------------------编程问答--------------------

public class First(){
public static void main(String []agrs){
System.out.println("hello world");
}
}


--------------------编程问答-------------------- 路过接分 --------------------编程问答-------------------- 爬虫啊你看看开源的有java的没 --------------------编程问答-------------------- 刚学java就学数据抓取吗,我不会,但我支持你 --------------------编程问答-------------------- 右击你的项目->build path->configure build path->add external jars->选中包-》OK
引用 13 楼 tao355155568 的回复:
那个..  能问一个比较弱智的问题么 .. httpclient这个包怎么加到Ecliplse里...   弄了半天没弄好引用 9 楼 cstur4 的回复:

Java code


Parser parser = new Parser("http://baike.baidu.com/view/2476238.htm");
NodeList nodes = parser.parse……
--------------------编程问答-------------------- 脚踏实地吧 兄弟 --------------------编程问答--------------------
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,