java抓取网页内容(我想做一个java网页指定内容的抓取。不知道怎么做 )

优采云 发布时间: 2021-12-14 00:05

  java抓取网页内容(我想做一个java网页指定内容的抓取。不知道怎么做

)

  使用htmlparser做java抓取网页的指定内容。. 我想对java网页的指定内容进行爬网。. .

  我不知道怎么做,请帮助我,不要太复杂。. .

  首先谢谢大家。. 不好意思,这件事拖了2天了,有点着急。. . --------------------编程问答--------------------whocanhelpme。. .

  我需要你!!!!

  请!--------------------编程问答--------------------使用流阅读网页,然后只输出字符串,(你应该可以处理字符串)然后根据你的目标选择节点--------------------编程问题and Answers------ --------------2楼z740003446的回复:用流读取网页,然后输出为字符串,(应该可以处理字符串),然后根据您的目标节点进行选择

  你能不能说得更具体一点,我根本不懂htmlparser ------------编程问答-------------- - - -

  import java.io.BufferedReader;<br />

import java.io.InputStreamReader;<br />

import java.net.HttpURLConnection;<br />

import java.net.URL;<br />

<br />

public class URLUtil {<br />

<br />

  public static String getHtml(String urlString) {<br />

    try {<br />

      StringBuffer html = new StringBuffer();<br />

      URL url = new URL(urlString);<br />

      HttpURLConnection conn = (HttpURLConnection) url.openConnection();<br />

      InputStreamReader isr = new InputStreamReader(conn.getInputStream());<br />

      BufferedReader br = new BufferedReader(isr);<br />

      String temp;<br />

      while ((temp = br.readLine()) != null) {<br />

        html.append(temp).append("\n");<br />

      }<br />

      br.close();<br />

      isr.close();<br />

      return html.toString();<br />

    } catch (Exception e) {<br />

      e.printStackTrace();<br />

      return null;<br />

    }<br />

  }<br />

<br />

  public static void main(String[] args) {<br />

    System.out.println(URLUtil.getHtml("http://www.fastunit.com"));<br />

  }<br />

}

  --------------------编程问答 --------------------引用leehomwong 4日的回复楼层:Javacode

  importjava.io.BufferedReader;

  importjava.io.InputStreamReader;

  .HttpURLConnection;

  .URL;

  publicclassURLUtil{

  publicstaticStringgetHtml(Str……

  我只想抢它的标题,我该怎么改?--------------------编程问答 --------------------引用leehomwong 4日的回复楼层:Javacode

  importjava.io.BufferedReader;

  importjava.io.InputStreamReader;

  .HttpURLConnection;

  .URL;

  publicclassURLUtil{

  publicstaticStringgetHtml(Str……

  我错了,我的意思是我不希望它显示 html 代码,只显示纯文本。. 需要怎么改--------------------编程问答--------------------我只想抓个网站的纯文本标题,和内容。. .

  有没有办法实现这一目标。. . 这里的任何人。. . 求助~--------------------编程问答--------------------看API .

  使用过滤器过滤标题--------------------编程问答--------------------有任何人~!--------------------编程问答 --------------------引用 yuerzm 8号回复楼层:请参阅下载 API。

  使用过滤器过滤标题

  我不知道怎么做,新手。. --------------------编程问答 --------------------谁能告诉我更具体的?

  你花几十分钟做的事,我可能要花上几十个小时。. . 麻烦大家了~帮帮我--------------------编程问答-------------------- 使用jsoup百度找到相关的API,很容易上手。--------------------编程问答 -------------------- 回复基本没做过一般简单使用常规过滤

  使用 htmlparser 处理更复杂的

  实际上编写自己的解析器

  您使用 htmlparserHTMLEditorKit.ParserCallback 获取标题

  publicvoidhandleStartTag(HTML.Tagt,MutableAttributeSeta,intpos)

  这是开始标签

  最好使用 if(t.equals(HTML.Tag.TITLE)) 来获得它。网站 支持。比如csdn,向上看左上角

  他的htmltitle写了pos定位或者左右标签定位,不可用。

  不要问关于你自己研究的其他问题--------------------编程问答---------------- --- ---------------------编程问答--------------------引用作者的回复13楼的Ollim:基本上一直没抓到回复。一般简单的正则过滤

  使用 htmlparser 处理更复杂的

  实际上编写自己的解析器

  您使用 htmlparserHTMLEditorKit.ParserCallback 获取标题

  publicvoidhandleStartTag(HTML.Tagt,MutableAttributeSeta,intpos)

  这是开始标签

  使用 if(t.……

  如果我不明白,我必须问。. 你必须在开始之前学习。我现在都很困惑。. --------------------编程问答 -------------------- 为什么没有人。. --------------------编程问答--------------------引用seven_tee 16日的回复楼:怎么没人。.

  写下代码给你。

  public static void main(String[] args) {<br />

 String htmlcode = ReadUrl.getHtml("http://tieba.baidu.com/p/1347940189");<br />

 Parser parser = Parser.createParser(htmlcode, "GBK");<br />

 HtmlPage page = new HtmlPage(parser);<br />

 try <br />

 { <br />

 parser.visitAllNodesWith(page);<br />

 }<br />

 catch (ParserException e1)<br />

 { <br />

   e1 = null;<br />

 }<br />

 // 显示标题<br />

 System.out.println(page.getTitle());<br />

 // 显示文本<br />

 System.out.println(getContent());<br />

}<br />

<br />

private static String getContent() {<br />

StringBean sBean  = new StringBean();<br />

sBean.setLinks(true);<br />

sBean.setCollapse(true);<br />

sBean.setReplaceNonBreakingSpaces(true);<br />

sBean.setURL("http://tieba.baidu.com/p/1347940189");<br />

// System.out.println("This content is:"+sBean.getStrings());<br />

return sBean.getStrings();<br />

}

  --------------------编程问答--------------------引用dyb19877517号回复floor:引用16楼seven_tee的回复:

  为什么没人。.

  写下代码给你。

  代码

  publicstaticvoidmain(String[]args){

  Stringhtmlcode=ReadUrl.getHtml("");

  解析器...

  ReadUrl需要导入什么包?

  --------------------编程Q&amp;A --------------------引用seven_tee 18日的回复楼:引用17楼dyb198775的回复:

  引用16楼seven_tee的回复:

  为什么没人。.

  写下代码给你。

  代码

  publicstaticvoidmain(String[]args){

  Stringhtmlcode=ReadUrl.getHtml("");

  普……

  importjava.io.BufferedReader;

  importjava.io.InputStreamReader;

  .HttpURLConnection;

  .URL;

  importorg.htmlparser.Parser;

  importorg.htmlparser.beans.StringBean;

  importorg.htmlparser.util.ParserException;

  importorg.htmlparser.visitors.HtmlPage;--------------------编程问答--------------------引用19楼dyb198775的回复: 引用18楼seven_tee的回复:

  引用17楼dyb198775的回复:

  引用16楼seven_tee的回复:

  为什么没人。.

  写下代码给你。

  代码

  publicstaticvoidmain(String[]args){

  Stringhtmlcode=ReadUrl.getHtml("……

  Stringhtmlcode=ReadUrl.getHtml("");

  我这段代码的ReadUrl报错,应该导入什么包?--------------------编程Q&amp;A --------------------引用seven_tee 18日的回复楼:引用17楼dyb198775的回复:

  引用16楼seven_tee的回复:

  为什么没人。.

  写下代码给你。

  代码

  publicstaticvoidmain(String[]args){

  Stringhtmlcode=ReadUrl.getHtml("");

  普……

  package com.dyb.url;<br />

<br />

import java.io.BufferedReader;<br />

import java.io.InputStreamReader;<br />

import java.net.HttpURLConnection;<br />

import java.net.URL;<br />

<br />

import org.htmlparser.Parser;<br />

import org.htmlparser.beans.StringBean;<br />

import org.htmlparser.util.ParserException;<br />

import org.htmlparser.visitors.HtmlPage;<br />

<br />

<br />

<br />

public class ReadUrl {<br />

public static String getHtml(String urlString) {<br />

    try {<br />

      StringBuffer html = new StringBuffer();<br />

      URL url = new URL(urlString);<br />

      HttpURLConnection conn = (HttpURLConnection) url.openConnection();<br />

      InputStreamReader isr = new InputStreamReader(conn.getInputStream());<br />

      BufferedReader br = new BufferedReader(isr);<br />

      String temp;<br />

      while ((temp = br.readLine()) != null) {<br />

        html.append(temp).append("\n");<br />

      }<br />

      br.close();<br />

      isr.close();<br />

      return html.toString();<br />

    } catch (Exception e) {<br />

      e.printStackTrace();<br />

      return null;<br />

    }<br />

  }<br />

<br />

public static void main(String[] args) {<br />

 String htmlcode = ReadUrl.getHtml("http://tieba.baidu.com/p/1347940189");<br />

 Parser parser = Parser.createParser(htmlcode, "GBK");<br />

 HtmlPage page = new HtmlPage(parser);<br />

 try <br />

 { <br />

 parser.visitAllNodesWith(page);<br />

 }<br />

 catch (ParserException e1)<br />

 { <br />

   e1 = null;<br />

 }<br />

 // 显示标题<br />

 System.out.println(page.getTitle());<br />

 // 显示文本<br />

 System.out.println(getContent());<br />

}<br />

<br />

private static String getContent() {<br />

StringBean sBean  = new StringBean();<br />

sBean.setLinks(true);<br />

sBean.setCollapse(true);<br />

sBean.setReplaceNonBreakingSpaces(true);<br />

sBean.setURL("http://tieba.baidu.com/p/1347940189");<br />

// System.out.println("This content is:"+sBean.getStrings());<br />

return sBean.getStrings();<br />

}<br />

}<br />

  --------------------编程问答--------------------引用7_tee 20号的回复楼:引用19楼dyb198775的回复:

  引用18楼seven_tee的回复:

  引用17楼dyb198775的回复:

  引用16楼seven_tee的回复:

  为什么没人。.

  写下代码给你。

  代码

  publicstaticvoidmain(String[]args){

  Stringhtmlcode=ReadUrl.ge……

  package com.dyb.url;<br />

<br />

import java.io.BufferedReader;<br />

import java.io.InputStreamReader;<br />

import java.net.HttpURLConnection;<br />

import java.net.URL;<br />

<br />

import org.htmlparser.Parser;<br />

import org.htmlparser.beans.StringBean;<br />

import org.htmlparser.util.ParserException;<br />

import org.htmlparser.visitors.HtmlPage;<br />

<br />

<br />

<br />

public class ReadUrl {<br />

public static String getHtml(String urlString) {<br />

    try {<br />

      StringBuffer html = new StringBuffer();<br />

      URL url = new URL(urlString);<br />

      HttpURLConnection conn = (HttpURLConnection) url.openConnection();<br />

      InputStreamReader isr = new InputStreamReader(conn.getInputStream());<br />

      BufferedReader br = new BufferedReader(isr);<br />

      String temp;<br />

      while ((temp = br.readLine()) != null) {<br />

        html.append(temp).append("\n");<br />

      }<br />

      br.close();<br />

      isr.close();<br />

      return html.toString();<br />

    } catch (Exception e) {<br />

      e.printStackTrace();<br />

      return null;<br />

    }<br />

  }<br />

<br />

public static void main(String[] args) {<br />

 String htmlcode = ReadUrl.getHtml("http://tieba.baidu.com/p/1347940189");<br />

 Parser parser = Parser.createParser(htmlcode, "GBK");<br />

 HtmlPage page = new HtmlPage(parser);<br />

 try <br />

 { <br />

 parser.visitAllNodesWith(page);<br />

 }<br />

 catch (ParserException e1)<br />

 { <br />

   e1 = null;<br />

 }<br />

 // 显示标题<br />

 System.out.println(page.getTitle());<br />

 // 显示文本<br />

 System.out.println(getContent());<br />

}<br />

<br />

private static String getContent() {<br />

StringBean sBean  = new StringBean();<br />

sBean.setLinks(true);<br />

sBean.setCollapse(true);<br />

sBean.setReplaceNonBreakingSpaces(true);<br />

sBean.setURL("http://tieba.baidu.com/p/1347940189");<br />

// System.out.println("This content is:"+sBean.getStrings());<br />

return sBean.getStrings();<br />

}<br />

}<br />

  补充:Java , Web 开发

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线