python协程实现一万并发_Python-并发下载-协程实现-上

协程是在一个线程内部执行, 一旦遇到了网络 I/O 阻塞,它就会立刻切换到另一个协程中运行,通行不断的轮询,降低了爬取网页的时间。

协程实现爬虫,步骤如下:

① 定义一个负责爬虫的类,所有的爬虫工作完全交由该类负责。

② 使用一个队列 data_queue 保存所有的数据。

③ 创建多个协程任务,每个协程都会使用页码构建完整的网址,访问网址爬取和提取有用的数据,并保存到数据队列中,直到所有网页中的数据提取出来。

④ 将 data_queue 队列中的数据全部取出来,保存到本地文件 duanzi.txt 中。

一、创建一个 Spider 类,负责采集和解析网页的源代码

在 movie_gevent.py 文件中import requests

from queue import Queue

class Spider(object):

def __init__(self):

self.headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36", "Accept-Language": "zh-CN,zh;q=0.8"}

self.base_url = "https://www.qiushibaike.com/8hr/page/"

# 创建保存数据的队列

self.data_queue = Queue()

# 统计数量

self.count = 0

二、定义一个用于发送请求的方法 send_request()

在 Spider 类中def send_request(self, url):

print("[INFO]: 正在爬取" + url)

html = requests.get(url, headers=self.headers).content

# 每次请求间隔 1s

time.sleep(1)

self.parse_page(html)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值