专栏名称: dwzb
目录
相关文章推荐
51好读  ›  专栏  ›  dwzb

gevent异步爬虫

dwzb  · 掘金  ·  · 2018-03-14 02:11

正文

gevent异步爬虫

本文首发于 知乎
之前我们讲过基于asycnio的异步爬虫实现,不过代码过于复杂,本文我们使用gevent模块实现异步爬虫。

本文分为如下部分

  • 用gevent实现异步爬虫
  • grequests模块

用gevent实现异步爬虫

因为使用非常简单,就直接上代码了

import gevent
from gevent import monkey
import requests
from bs4 import BeautifulSoup
monkey.patch_all() # 对所有io操作打上补丁,固定加这一句
def get_title(i):
url = 'https://movie.douban.com/top250?start={}&filter='.format(i*25)
text = requests.get(url).content
soup = BeautifulSoup(text, 'html.parser')
lis = soup.find('ol', class_='grid_view').find_all('li')
for li in lis:
title = li.find('span', class_="title").text
print(title)
gevent.joinall([gevent.spawn(get_title, i) for i in range(10)])

gevent本质上是开启了多个微线程,下面我们用 threading 模块来检验一下

import gevent
from gevent import monkey
import requests
from bs4 import






请到「今天看啥」查看全文