前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Scrapy框架的使用

Scrapy框架的使用

作者头像
北山啦
发布2022-11-27 13:01:26
5250
发布2022-11-27 13:01:26
举报
文章被收录于专栏:北山啦的博客

Python爬虫入门之 Scrapy框架的使用

Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。 [1]

支持自定义,方便,好用。异步的,,速度嗖嗖嗖的!!!

异步处理框架,可配置和可扩展程度非常高,Python中使用最广泛的爬虫框架

Scrapy中文文档

常用命令:

方法

描述

scrapy startproject scrapydemo

创建一个名为 scrapydemo 的scrapy项目

scrapy genspider scrapydemo bilibili.com

创建一个名为scrapydemo的spider,访问域名为bilibili.com

scrapy crawl -o xxx.json

数据存储到 xxx.json

cmdline.execute(“scrapy crawl scrapyspider”.split())

启动scrapy的scrapyspider文件

0. 准备工作

查看scrapy命令

scrapy -h

安装

pip install scrapy

1. 创建一个scrapy项目

创建scrapy项目

scrapy startproject scrapydemo

切换到scrapydemo项目

cd scrapydemo

创建一个新的spider

scrapy genspider scrapydemo bilibili.com

流程图:

画图

  1. Spider的将需要发送请求的request发送给Engine(引擎
  2. Enginerequest发送给Scheduler(调度器
  3. Scheduler(调度器,可理解为url队列),生成request请求交给Engine
  4. Engine拿到request,通过DownloaderMiddleware(可选,主要有UA, Cookie,代理IP)进行层层过滤发送给Downloader
  5. Downloader向互联网发送请求,获取到response后,又经过SpiderMiddleware(爬虫中间件)发送给Engine
  6. Engine获取到response数据之后,返回给Spider
  7. Spiderparse()方法对获取到的response数据进行处理,解析出itemrequest,然后发送给Engine
  8. Engine获取到itemrequest,将item发送给ItemPipeline(管道)进行数据持久化,将request发送给Scheduler(调度
  9. 以上步骤会一直循环,循环到无request(url)请求,程序才停止。

注意!即使某个request中报错了,程序也会继续执行到没有request请求才停止。


部分文件说明:

文件

说明

items.py

定义采集的数据字段,用于结构化数据

pipelines.py

数据持久化

settings.py

配置文件

spiders

编写爬虫规则

middleware.py

中间件,如为请求添加cookie、ua等

2. 案例实战

链家

查看君子协议:https://www.bilibili.com/robots.txt

3. 数据持久化

存储为csv:

代码语言:javascript
复制
cmdline.execute('scrapy crawl spider -o lianjia.csv'.split())

存储为json:

代码语言:javascript
复制
cmdline.execute('scrapy crawl spider -o lianjia.json'.split())

存储到数据库:

pipeline.py

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python爬虫入门之 Scrapy框架的使用
    • 0. 准备工作
      • 1. 创建一个scrapy项目
        • 2. 案例实战
          • 3. 数据持久化
          相关产品与服务
          消息队列 TDMQ
          消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档