使用Python爬取小说(多进程版)

博主改进了之前的Python小说爬虫程序,通过采用多进程方式显著提高了爬取速度,以解决单线程效率低的问题。由于Python的GIL锁限制,多线程无法充分利用多核优势。在多进程模式下,每个进程独立运行,避免了GIL的影响,实现类似多线程的并行效果。测试结果显示,改进后的爬虫每秒能爬取1.5到6章,但为了避免被服务器封禁,可能需要适当加入休眠机制。

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

吐槽一下

前面写的爬取小说的程序,感觉爬起来太慢了,1秒钟才爬1章,因此我把它改成了多进程版的,至于为什么要用多进程而不用多线程,是因为Python有一个坑爹的GIL锁,就是有了这个玩意儿,使得Python的多线程的效率变得很低,因为GIL规定同一时刻只能有一个线程可以执行,因此Python的多线程并不是真正的多线程。但是多进程就不一样了,不同的进程访问的是不同的资源,各个进程之间可以互不影响,可以达到类似于多线程的效果。

话不多说,直接上代码:

import requests
import random
from lxml import etree
import os
import time
from multiprocessing import Process


# 爬取的主域名
HOST = 'http://www.biqugecom.com'
# User-Agent
user_agent = [
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1"
    "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
    "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
    "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Ch
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值