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

Scrapy爬虫框架介绍

作者头像
友儿
发布2022-09-29 16:08:31
3460
发布2022-09-29 16:08:31
举报
文章被收录于专栏:友儿

Scrapy爬虫框架介绍

  • 文档
  • 什么是scrapy 基于twisted搭建的异步爬虫框架. scrapy爬虫框架根据组件化设计理念和丰富的中间件, 使其成为了一个兼具高性能和高扩展的框架
  • scrapy提供的主要功能
    • 具有优先级功能的调度器
    • 去重功能
    • 失败后的重试机制
    • 并发限制
    • ip使用次数限制
    • ....
  • scrapy的使用场景
    • 不适合scrapy项目的场景
      • 业务非常简单, 对性能要求也没有那么高, 那么我们写多进程, 多线程, 异步脚本即可.
      • 业务非常复杂, 请求之间有顺序和失效时间的限制.
      • 如果你不遵守框架的主要设计理念, 那就不要使用框架
    • 适合使用scrapy项目
      • 数据量大, 对性能有一定要求, 又需要用到去重功能优先级功能的调度器
  • scrapy组件

Scrapy教程

安装

代码语言:javascript
复制
pip install scrapy

创建项目

代码语言:javascript
复制
scrapy startproject jd_crawler_scrapy

目录结构

  • spiders(目录) 存放SPIDERS项目文件, 一个scrapy项目下可以有多个爬虫实例
  • items 解析后的结构化结果.
  • middlewares 下载器中间件和爬虫中间件的地方
  • piplines 处理items的组件, 一般都在pipelines中完成items插入数据表的操作
  • settings 统一化的全局爬虫配置文件
  • scrapy.cfg 项目配置文件

scrapy爬虫demo

代码语言:javascript
复制
import scrapy


class JdSearch(scrapy.Spider):
    name = "jd_search"

    def start_requests(self):
        for keyword in ["鼠标", "键盘", "显卡", "耳机"]:
            for page_num in range(1, 11):
                url = f"https://search.jd.com/Search?keyword={keyword}&page={page_num}"

                # 选用FormRequest是因为它既可以发送GET请求, 又可以发送POST请求
                yield scrapy.FormRequest(
                    url=url,
                    method='GET',
                    # formdata=data,             # 如果是post请求, 携带数据使用formdata参数
                    callback=self.parse_search   # 指定回调函数处理response对象
                )


    def parse_search(self, response):
        print(response)

启动爬虫

代码语言:javascript
复制
scrapy crawl spider_name
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

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