协程用的不多,但是也是实现并发的一种方式,协程的特点是,在执行的过程中,如果遇到需要等待的时候,会自动切换到另外
一个协程中执行,本次是用协程的特点,实现一个并发的爬虫。
首先,创建一个协程执行的函数,如:
函数参数的含义:
url : 爬取的网站连接
start:爬取的起始页(每个协程中爬取的起始页都不相同)
end:爬取的终止也页(同上)
file:爬取的数据存储的文件
在主函数(main)中创建五个协程:
HandleAll是每个协程执行的函数,也是本次爬虫的主要部分,该函数包括url的处理,数据的提取,第二和第三个参数是每个协
程负责爬取的页数范围。
整体的程序如下:
from selenium import webdriver from bs4 import BeautifulSoup #导入协程相关的库 import gevent def HandleAll(url,start,end,file): #每个协程指定的下载页数的范围 for i in range(start,end): driver = webdriver.Chrome() if i == 0: theurl = url else: theurl = url +