文章目录
一、为什么要学这个?🤔
最近好多小伙伴问我:“Python爬虫到底有啥用啊?” 举个🌰吧——你追的小说更新太慢?网站广告太多影响阅读?这时候只需要20行Python代码(真的只要20行!),就能把整本小说打包下载到本地,随时随地想看就看!(注意:仅供学习交流,请尊重原作者版权!!!)
二、准备工作清单📝
1. 装好这些工具再出发
- Python 3.6+(建议用最新版)
- requests库(网络请求神器)
- BeautifulSoup4(解析HTML的瑞士军刀)
安装命令(复制粘贴就能用):
pip install requests beautifulsoup4
2. 选对目标网站很重要!
新手建议选择结构简单的小说网站(比如我这次演示用的www.xbiquge.la
),千万别一上来就挑战那些有复杂反爬机制的大站(会被封IP的!)
三、实战代码解析🚀
第一步:找到小说目录页
import requests
from bs4 import BeautifulSoup
# 伪装成浏览器访问(重要!)
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
}
# 以《斗破苍穹》为例
url = 'http://www.xbiquge.la/7/7878/'
response = requests.get(url, headers=headers)
response.encoding = 'utf-8' # 解决中文乱码问题
第二步:提取章节链接(关键!)
soup = BeautifulSoup(response.text, 'html.parser')
chapter_list = soup.select('#list > dl > dd > a') # CSS选择器大法好!
# 打印前5章链接看看效果
for chapter in chapter_list[:5]:
print(chapter['href'])
第三步:循环抓取所有章节
for index, chapter in enumerate(chapter_list):
chapter_url = url + chapter['href']
chapter_res = requests.get(chapter_url, headers=headers)
chapter_res.encoding = 'utf-8'
# 提取正文内容
chapter_soup = BeautifulSoup(chapter_res.text, 'html.parser')
content = chapter_soup.find('div', id='content').text
# 保存到本地文件
with open('doupo.txt', 'a', encoding='utf-8') as f:
f.write(f"\n\n=== 第{index+1}章 {chapter.text} ===\n\n")
f.write(content)
print(f'已完成第{index+1}章抓取!')
time.sleep(1) # 礼貌访问,防止被封
四、新手避坑指南❗
1. 编码问题
遇到乱码别慌张!试试这些方法:
response.encoding = 'gbk'
(有些网站用GBK编码)- 用
chardet
库自动检测编码
2. 反爬机制破解
如果遇到403错误,可能需要:
- 更换User-Agent(网上搜最新浏览器UA)
- 使用代理IP(新手慎用)
- 添加Referer请求头
3. 网站结构变化
(血泪教训!)某天突然运行失败?大概率是网站改版了!这时候需要:
- 重新检查网页元素
- 更新CSS选择器路径
- 用浏览器开发者工具(F12)实时调试
五、进阶玩法🎯
1. 多线程加速
用concurrent.futures
模块让爬虫快10倍:
from concurrent.futures import ThreadPoolExecutor
def download_chapter(chapter):
# 把上面的抓取代码封装成函数
with ThreadPoolExecutor(max_workers=5) as executor:
executor.map(download_chapter, chapter_list)
2. 自动推送到Kindle
加上这些代码,每天早上自动推送最新章节到你的电子书设备!(需要SMTP服务支持)
3. 制作可视化阅读进度
用pyecharts生成阅读进度仪表盘,超酷炫!
六、法律红线不能碰!⚠️
最后说点严肃的(超级重要!!!):
- 不要爬取VIP章节内容
- 控制访问频率(加sleep)
- 绝对不要用爬虫攻击网站
- 商用前务必获得授权
七、总结与资源
这次我们实现了:
✅ 自动抓取小说目录
✅ 批量下载章节内容
✅ 解决中文编码问题
✅ 应对基础反爬措施
完整代码已打包,关注后私信我发"小说爬虫"获取(附带10个常见小说网站的适配方案)!下期预告:《用爬虫+数据分析找出网文爆款规律》…
(本文代码仅供学习交流,请于24小时内删除爬取内容,请支持正版阅读!)