qq_47948219
qq_47948219
采纳率100%
2021-02-23 19:55

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

已采纳

有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("下载失败");
		}
		}
	}
	


 

 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • weixin_42534024 何必要如此 2月前

    按行读取不一定就符合你的正则  标签是

    <p>

    xxxxxx

    </p>你能匹配上吗

    点赞 评论 复制链接分享
  • qq_47948219 qq_47948219 2月前

     

    点赞 评论 复制链接分享
  • weixin_42534024 何必要如此 2月前

    要不试试jsoup?

    点赞 评论 复制链接分享
  • allway2 allway2 2月前

    独立运行,不用jetty

    点赞 评论 复制链接分享