python——爬虫学习——Scrapy爬虫框架入门-(6)
Scrapypython爬虫
·
Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
一、”5+2”结构
1.Engine(引擎)
控制所有模块之间的数据流,根据条件触发事件
不需要用户修改
2.Downloader(下载器)
根据请求下载网页
不需要用户修改
3.Scheduler(调度器)
对所有爬取请求进行调度管理
不需要用户修改
4.Downloader Middlewares(下载器中间件)
处理引擎与下载器之间的请求及响应
5.Spider(蜘蛛)
解析Downloader返回的响应(Response)
产生爬取项(scraped item)
产生额外的爬取请求(Request)
用户编写(配置)
6.Item Pipelines(项目管道)
以流水线处理Spiders爬取项
由一组操作顺序组成类似流水线,每个操作是一个ItemPipeline类型
可能操作包括:清理、检验和查重爬取项中的HTML数据,将数据存储到数据库
用户编写(配置)
7.Spider Middleware(蜘蛛中间件)
处理蜘蛛的响应输入和请求输出
8.Scheduler Middlewares(调度中间件)
处理引擎发送到调度的请求和响应
二、Scrapy的安装
pip install scrapy
安装完成后,通过:
scrapy -h
测试安装完成
三、Scrapy命令
1.命令格式
>scrapy <command> [options] [args]
2.常用命令
命令 | 说明 | 格式 |
---|---|---|
startproject | 创建一个新工程 | scrapy startproject [dir] |
genspider | 创建一个爬虫 | scrapy genspider [options] |
settings | 获得爬虫配置信息 | scrapy settings [options] |
crawl | 运行一个爬虫 | scrapy crawl |
list | 列出工程中所有爬虫 | scrapy list |
shell | 启动URL调试命令行 | scrapy shell [url] |
3.建立一个Scrapy爬虫
>scrapy startproject spiders_test
>cd spiders_test
>scrapy genspider test baidu.com
test.py:
# -*- coding: utf-8 -*-
import scrapy
class TestSpider(scrapy.Spider):
name = 'test'
#allowed_domains = ['baidu.com']
start_urls = ['https://tieba.baidu.com/f?kw=wwe']
def parse(self, response):
fname = response.url.split('=')[-1]
with open(fname, 'wb') as f:
f.write(response.body)
self.log('Saved file %s.' % name)
运行:
>scrapy crawl test
更多推荐
已为社区贡献5条内容
所有评论(0)