qq_47948219 2021-02-23 19:55 采纳率: 100%
浏览 63
已结题

有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条回答 默认 最新

  • 何必要如此 2021-02-24 15:08
    关注

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

    <p>

    xxxxxx

    </p>你能匹配上吗

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月25日

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)