此方法是采用python的协程方式对网站进行数据的抓取
协程也称作微线程,是比线程还小的一种执行体。
协程不同于线程的是,线程是抢占式的调度,而协程是协同式的调度,也就是说,协程需要自己做调度。
协程工作的两种模式:手动执行和自动执行
手动执行主要是采用greenlet模块,自动执行的模块是gevent,我们在安装的时候只需要安装gevent模块即可,因为在自动执行的模块中封装了手动执行的模块greenlet
代码:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from urllib import request
from gevent import monkey
import gevent
monkey.patch_all()
def func(url):
print('get data from %s' %url)
data = request.urlopen(url)
res = data.read()
f = open('a.txt','wb')
f.write(res)
f.close()
print('%s bytes is received from %s' %(len(res),url))
if __name__ == '__main__' :
gevent.joinall(
[gevent.spawn(func,'url地址')]
)
本文介绍使用Python的协程技术实现网页数据抓取的方法。协程作为一种轻量级线程,通过gevent模块实现自动调度,提高了网络请求的效率。文章提供了具体的代码示例,展示了如何使用gevent发起HTTP请求并保存响应数据。

5596

被折叠的 条评论
为什么被折叠?



