java爬虫爬取笔趣阁小说

本文介绍如何使用Java爬虫技术,详细解析爬取笔趣阁网站小说的步骤和方法,涵盖网络请求、HTML解析、数据提取等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java爬虫爬取笔趣阁小说

下载界面
下载完成
效果图
分段效果

package novelCrawler;

import org.jsoup.Connection;
import org.jsoup.HttpStatusException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import ui.DownMsgUI;
import ui.crawlerUI;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Timer;
import java.util.TimerTask;

import javax.sound.sampled.AudioFormat.Encoding;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JProgressBar;
public class biquge {
   
   

	   public biquge(String nn,String start,JProgressBar jpbVal,JProgressBar jpb2) {
   
   
	        long t1 = System.currentTimeMillis();
	        
	        //查找小说
	        Connection connection1 = Jsoup.connect("http://www.xbiquge.la/xiaoshuodaquan/");
	        
	        Document document1 = null;
			try {
   
   
				document1 = connection1.get();
			} catch (IOException e2) {
   
   
				// TODO 自动生成的 catch 块
				e2.printStackTrace();
			}
	        Elements elementsLis1=null;
			try {
   
   
	        Element elementUL1 = document1.select("[class=novellist]").first();
	        elementsLis1 = elementUL1.select("li");
			} catch (Exception e1) {
   
   
				// TODO 自动生成的 catch 块
				e1.printStackTrace();
			}
			jpbVal.setVisible(true);
			int count = 0;
			 DownMsgUI dmu = new DownMsgUI();//消息框
	        //巡官遍历获取到的整个elementsLis集合
	        for(Element elementLi1 : elementsLis1){
   
   
	        	
	        	try {
   
   
					Thread.sleep(200);
				} catch (InterruptedException e1) {
   
   
					// TODO 自动生成的 catch 块
					e1.printStackTrace();
				}
	        	
	            Element elementA1 = elementLi1.select("a").first();      
	            String href = elementA1.attr("href");//获取标签中的属性值(它这里采用的是相对路径的写法
	            String novelNa = elementA1.text();//小说名
	            
	            
	            jpbVal.setMaximum(elementsLis1.size());
	            
	          
	            
	            int result1 = novelNa.indexOf(nn);//匹配小说名
	            if(result1 != -1){
   
   
	            	//跟进小说
	            	jpbVal.setValue(elementsLis1.size());
	            	//JOptionPane msg = new JOptionPane();
	            	//msg.setBounds(100, 100, 100, 100);
	            	//JOptionPane.showMessageDialog(jpb2,"已找到小说:"+novelNa);
	            	dmu.ta.append("找到小说: "+novelNa+"\n");
	            	connectNovel(novelNa,href,start,jpb2,dmu);
	            	break;
	            	
	            }else{
   
   
	            	//继续往下寻找
	            	//System.out.println("未找到小说!");
	            	jpbVal.setValue(count);
	            }
	            count++;
	            if(count>=elementsLis1.size()) {
   
   
	            	System.out.println("未找到小说!");
	            }
	           
	    }
	   }    
	        
	        
	    /////////////////////////////////////////////////////////////////////////////////////    
	  public void connectNovel(String novelNa,String h,String start,JProgressBar jpb2,DownMsgUI dmu) {
   
      
	        //1.与我们要爬取数据的页面建立连接
	       Connection connection = Jsoup.connect(h);
	        
	        jpb2.setVisible(true);

	        Document document = null;
			try {
   
   
				document = connection.get();
			} catch (IOException e2) {
   
   
				// TODO 自动生成的 catch 块
				e2
Python爬虫用于从网站上抓取数据,包括文本、图片等信息。如果你想爬取这类小说网站的数据,首先需要了解其网页结构,通常这种类型的网站会有分页、章节列表等布局。以下是使用Python爬虫如`requests`库获取HTML内容的大致步骤: 1. **导入所需库**: ```python import requests from bs4 import BeautifulSoup ``` 2. **发送GET请求获取HTML**: ```python url = 'https://www.biquge.com.cn/' # 首页或其他章节页面URL response = requests.get(url) if response.status_code == 200: html_content = response.text else: print("请求失败") ``` 3. **解析HTML内容**: ```python soup = BeautifulSoup(html_content, 'html.parser') # 使用BeautifulSoup解析HTML,提取你需要的信息,如章节链接或标题 chapters = soup.find_all('a', class_='chapter') # 这里的类名假设是获取章节链接的部分 ``` 4. **遍历获取数据**: ```python for chapter in chapters: link = chapter['href'] # 获取每个章节的链接 title = chapter.text.strip() # 获取章节标题 # 对于每个链接,你可以进一步发送请求并处理新的HTML内容 ``` 5. **保存或处理数据**: 将爬取到的数据存储到文件、数据库或进行后续分析。 **注意事项**: - 爬虫应遵守目标网站的robots.txt规则,并尊重版权。 - 频繁的高频率请求可能会导致IP被封禁,所以可以设置合适的延迟或使用代理IP。 - 有些网站有反爬机制,可能需要使用更复杂的解决方案,比如设置User-Agent、模拟登录等。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值