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

有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 关于#vscode#的问题:ESP32开发板对接MQTT实现小灯泡的开关
  • ¥15 TMC2209串口模式下读取不到寄存器的值串口助手蓝色字体是发过去的消息,绿色字体是收到的消息,第二行发送读取寄存器的指令但是没有读取到寄存器的值串口助手如下图:接线如下图,如何解决?
  • ¥15 高通安卓11提取完整线刷包软件,或者优博讯dt50顺丰刷机包
  • ¥20 C,有个译码器,换了信道就跑不出原来数据
  • ¥15 MIMIC数据库安装问题
  • ¥60 基于JTag协议开发Fpga下载器上位机,哪位大🐂有偿指导?
  • ¥20 全书网Java爬取数据
  • ¥15 怎么获取红包封面的原始链接,并且获取红包封面序列号
  • ¥100 微信小程序跑脚本授权的问题
  • ¥100 房产抖音小程序苹果搜不到安卓可以付费悬赏