有Java爬虫大佬帮我看下这个是哪里错了怎么运行不出来呢。谢谢啦,运行结果在下面,也有示例代码!

2021-02-23 22:05发布

有Java爬虫大佬帮我看下这个是哪里错了怎么运行不出来呢。谢谢啦,

看不到哪里错了就是运行不出来,,

代码如下:

package Cho; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.URL; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Demo1 { private static final String i = null; public static void main(String[] args, boolean isEX) { //根据小说存在位置的file对象 File file=new File("D:\\pachong\three_gou.txt"); //2.根据网页的结构编写正则,创建pattern对象 String regex_content="<p.*?>(.*)</p>"; String regex_title="<title>(.*?)</title>"; Pattern p_content=Pattern.compile(regex_content); Pattern p_title=Pattern.compile(regex_title); Matcher m_content; Matcher m_title; //3.编写循环,创建向所有小说章节页面发起网络请求的url对象 for(int i=0;i<=10;i++) System.out.println("第"+i+"章开始下载。。。"); try { //创建每一个页面的url对象 URL url=new URL("http://www.purepen.com/sgyy/"+i+".htm"); //创建网络读取流 BufferedReader reder=new BufferedReader(new InputStreamReader(url.openStream(),"utf8")); //读取网络内容 String str=null; //创建输入流 BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file,true))); while((str=reder.readLine())!=null){ m_title=p_title.matcher(str.toString()); m_content=p_content.matcher(str.toString()); //获取小说标题写入来本地文件 boolean ieEx= m_title.find(); if(isEX){ String title =m_title.group(); //清洗得到数据 title =title.replace("<title>", "").replace("</title>", ""); writer.write("第"+i+"章:"+title+"\n"); } while(m_content.find()){ String content=m_content.group(); //清洗的到的数据 content=content.replace("<p>", "").replace("</p>", "").replace("&nbsp;", "").replace("?", ""); //吧小说内容写入文件 } } System.out.println("第"+i+"章下载完成。。。。。。"); writer.write("\n\n"); writer.close();//关闭 reder.close(); } catch (Exception e) { System.out.println("下载失败"); } } }

 

 

1条回答

独立运行,不用jetty