社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

什么是Python并发编程,以及爬虫代码演示

蚂蚁学Python • 1 年前 • 627 次点击  

什么是并发编程?

并发编程是指在计算机中一种同时执行多个独立的任务或操作的编程方式。

这些任务可以在同一时间段内交替运行,从而实现更高效的资源利用和程序性能。

通过并发编程,程序员可以利用多核处理器或多处理器系统的优势,实现更快速的响应和更高的吞吐量。

并发编程的用途?

并发编程是为了提高程序的性能和响应速度,对于爬虫来说,就是在较短时间内,爬取更多的内容。

Python中并发编程的实例

爬虫小代码

如下是一个简单的爬虫程序,用户爬取豆瓣网的首页

def get_page():
    import requests
    headers = {
        "User-Agent""Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"
    }
    requests.get("https://www.douban.com/", headers=headers)

调用一次函数,相当于爬取数据一次;

那么我们使用单线程和多线程,区别大吗?

单线程的爬取

如果是单线程的爬取,例如要爬取30次,那么就是for循环,挨个爬取页面。

def single():
    start = time.time()
    for i in range(30):
        get_page()
    print("单线程:", time.time() - start)

调用这个函数,打印时间,是单线程:10.149秒钟。

多线程的爬取

多线程的原理,是同一时间,会有多个线程同时执行。当然会比单线程要快。

使用Python的ThreadPoolExecutor可以实现线程池的效果。

def concurrent(): from concurrent.futures import ThreadPoolExecutor executor = ThreadPoolExecutor() start = time.time() for i in range(30): executor.submit(get_page) executor.shutdown(wait=True) print("多线程:", time.time() - start)

其中executor.shutdown的wait=True,含义是等待所有的子线程执行完毕,再继续执行后续的代码

这段代码执行,会看到时间大概是多线程:2.16,比单线程的10秒钟,快了快5倍左右。

简单总结

爬虫是一个和网络交互的应用,这种程序是注重IO(输入输出)的,非常适合多线程的方式进行爬取,通过多线程,能够大幅度提升爬取效率。

课程永久有效,新课全都免费看;

蚂蚁老师本人提供答疑、群聊答疑等服务;

课程重复回看,永久有效;

提供副业兼职渠道;

课程可以单独买,也可以购买全套课程;

全套课原价1998元,本月优惠价格998元。

如果想要更多了解:

蚂蚁老师每晚21~23点直播,抖音账号:Python导师-蚂蚁

任何问题可以微信扫码咨询蚂蚁老师

点击下方“阅读原文”,可以直达课程主页

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/168688
 
627 次点击