此方法是采用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地址')]
)