网络爬虫学习心得2(多线程爬取小说)

本文介绍了作者在学习网络爬虫时,通过爬取《剑来》小说进行实践的心得。首先分析了笔趣阁网站的结构,确定了章节地址的规律,并将章节页码写入文件以便多线程爬取。在爬取过程中,解决了中文乱码问题,成功获取了小说内容并保存到文本文件。然后,通过实现多线程爬虫,将原本单线程1201秒的爬取时间缩短至580秒,效率提升了50%以上。

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

有了爬虫的基础知识,接下来爬取笔趣阁网站小说作为练手。《剑来》是我比较喜欢的一本小说,很值得一看。目前小说还没完结,笔趣阁只更新了603章,因此就凑整数爬取前600章节。

网站结构的分析
从笔趣阁目录页可以看到,要爬取每一个章节的内容需要获取每一个章节的地址。每一个章节的地址都在“http://www.biquduge.com/12_12785/”这个目录下后面再添加后续7位数字的页码,这些页码没有一定的规律,因此爬取每一章节的页码,写入文件。这里为什么要写入文件,是为了后续用多线程进行爬虫。

#爬取http://www.biquduge.com/12_12785/首页中每一章节的地址
r = requests.get('http:/www.biquduge.com/12_12785/',headers=header,timeout=10)
soup = BeautifulSoup(r.text,'lxml')
lis = soup.find('div',id='list')
content = lis.find_all('a')
for item in content:
    if item.string == None:
        continue
    else:
        with open(r'd:\ip.text','a+',encoding='utf-8') as f:
            f.write(item.get("href")+'\n')
with open(r'd:\ip.text','r') as f:
    for i in range(600):
        line = f.readline().strip('\n')
        link_add.append(link+line)
        i+=1
    f.close()

爬取小说内容
小说内容分为章节名称和每一章节的正文,有之前学习的基础也比较容易可以完成简单爬虫代码。

for i in range(600):
    r = requests.get(link_add[i],headers=header,timeout=30)
    r.encoding = r.apparent_encoding
    soup = BeautifulSoup(r.text,'lxml')
    chapter = soup.find('div',class_='bookname').find('h1')
    article = soup
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值