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 求.net core 几款免费的pdf编辑器
  • ¥20 SQL server表计算问题
  • ¥15 C# P/Invoke的效率问题
  • ¥20 thinkphp适配人大金仓问题
  • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)