scrapy异步高性能框架实战
1 什么是scrapy异步框架
Scrapy 是一套基于基于Twisted的异步处理框架,纯python实现的爬虫框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便,可以大幅提升爬虫的爬取效率
2,怎么安装scrapy框架
直接使用
pip install scrapy
创建项目文件
scrapy startproject douban
3 文件目录
douban文件是我自己的项目名称,所有的爬虫项目都要放到spiders文件下,比如ceshi.py就是我自己爬虫项目,item是管道需要返回的数据的形式,middlewares.py是管道配置文件,pipelines.py是所有数据返回的文件,settings.py是你的配置文件。
scrapy框架怎么使用
现在先给大家写个demo文件,我先拿自己的服务器的接口测试下scrapy框架的爬取速度,http://wensong.xyz/ip这个接口会返回你请求的ip地址,
首先我们得在spiders文件夹下编写代码,代码如下:
import scrapy,json
class MovieSpider(scrapy.Spider):
name = 'ceshi'
#爬虫项目的名字,运行代码时候需要的到
start_urls = ['http://wensong.xyz/ip']
def parse(self, response):
print(json.loads(response.body))
运行爬虫项目
scrapy crawl ceshi
我们在终端或者cmd的窗口运行你的爬虫项目,我们可以在窗口看到这个信息
这个就是我们爬取的结果,
测试爬取速度
我们这次进行多次访问这个端口,代码改成下面这个模样,代码如下:
import scrapy,json
class MovieSpider(scrapy.Spider):
name = 'ceshi'
start_urls=[]
for x in range(10000):
start_urls.append('http://wensong.xyz/ip')
def parse(self, response):
print(json.loads(response.body))
这个代码的意思是我们直接访问1万次的,我们显示日志的话,会看到这个信息
我们会看到第二行告诉我们完成时间是43秒时间完成了1万次的请求,请求的速度取决你你的电脑性能和对面服务器的性能,相对来说这个速度也是可以的,下面是我使用无框架的测试速度,代码如下:
import requests,json,time
start_time=time.time()
for x in range(10000):
print(json.loads(requests.get('http://wensong.xyz/ip').text))
stop_time=time.time()
print('完成时间是',stop_time-start_time)
比对结果
完整项目地址:github地址
我们会发现差距是非常大的,这期我们先讲到这里下期会讲到那些配置文件,以及代理的配置,喜欢的点个关注再走,不迷路