scrapy---爬虫界的django

这篇具有很好参考价值的文章主要介绍了scrapy---爬虫界的django。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1介绍

scrapy---爬虫界的django,爬虫,scrapy,爬虫

scrapy架构


引擎(EGINE):引擎负责控制系统所有组件之间的数据流,并在某些动作发生时触发事件。大总管,负责整个爬虫数据的流动

调度器(SCHEDULER)用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL的优先级队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址

下载器(DOWLOADER) 用于下载网页内容, 并将网页内容返回给EGINE,下载器是建立在twisted这个高效的异步模型上的(效率很高,同时可以发送特别多请求出出)

爬虫(SPIDERS) SPIDERS是开发人员自定义的类,用来解析responses,并且提取items,或者发送新的请求

项目管道(ITEM PIPLINES) 在items被提取后负责处理它们,主要包括清理、验证、持久化(比如存到数据库)等操作

# 下载器中间件(Downloader Middlewares)位于Scrapy引擎和下载器之间,主要用来处理从EGINE传到DOWLOADER的请求request,已经从DOWNLOADER传到EGINE的响应response,你可用该中间件做以下几件事

爬虫中间件(Spider Middlewares)位于EGINE和SPIDERS之间,主要工作是处理SPIDERS的输入(即responses)和输出(即requests)

2.安装     

Windows平台

        可以先试一下,

pip3 install scrapy

如果不成功,用如下方法:

1.安装wheel后,便支持通过wheel文件安装软件,wheel文件官网:https://www.lfd.uci.edu/~gohlke/pythonlibs

pip3 install wheel

2. 

pip3 install lxml
pip3 install pyopenssl

3.下载并安装pywin32:https://sourceforge.net/projects/pywin32/files/pywin32/

 4.下载twisted的wheel文件:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted

5.执行pip3 install 下载目录\Twisted-17.9.0-cp36-cp36m-win_amd64.whl

6.pip3 install scrapy

Linux,mac平台

pip3 install scrapy

3.创建scrapy项目--->使用命令   cmd

1.先cd到scrapy项目要保存的文件夹

2.创建项目

    scrapy startproject 项目名字

3创建爬虫 
   

scrapy genspider 爬虫的名字 爬虫的网址

例子 :
    scrapy genspider baidu www.baidu.com

4. 启动爬虫
   

 scrapy crawl cnblogs

也可以在run.py 中写

from scrapy.cmdline import execute

execute(['scrapy', 'crawl', 'cnblogs','--nolog'])

4.scrapy项目目录结构

mysfirstscrapy  # 项目名
    mysfirstscrapy # 包
        spiders    # 包,里面放了自定义的爬虫,类似于app
            __init__.py
            baidu.py  # 百度爬虫
            cnblogs.py#cnblogs爬虫
        items.py      #类似于django的 models表模型,一个个模型类
        middlewares.py # 中间件
        pipelines.py #管道---》写持久化
        settings.py #项目配置文件
    scrapy.cfg  # 项目上线配置

5 scrapy解析数据

1 response对象有css方法和xpath方法
    -css中写css选择器
    -xpath中写xpath选择
2 重点1:
    -xpath取文本内容
    './/a[contains(@class,"link-title")]/text()'
    -xpath取属性
    './/a[contains(@class,"link-title")]/@href'
    -css取文本
    'a.link-title::text'
    -css取属性
    'img.image-scale::attr(src)'
3 重点2:
    .extract_first()  取一个
    .extract()        取所有

 创建爬虫文件分析

 

import scrapy

爬虫类,继承了scrapy.Spider
class CnblogSpider(scrapy.Spider):
        name = "cnblog"      #爬虫的名字
        allowed_domains = ["www.cnblog.com"]      # 允许爬取的域
        start_urls = ["https://www.cnblog.com"]      # 开始爬取的地址

def parse(self, response):
        pass文章来源地址https://www.toymoban.com/news/detail-560191.html

到了这里,关于scrapy---爬虫界的django的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 爬虫框架scrapy基本原理

    scrapy是python的爬虫框架,类似于django(python的web框架)。 安装: Mac、Linux 执行 pip3 install scrapy ,不存在任何问题 Windows 执行 pip3 install scrapy ,如果安装失败,执行下面步骤: (1)安装wheel(为支持通过文件安装软件): pip3 install wheel (wheel官网) (2)安装lxml: pip3 insta

    2024年02月15日
    浏览(51)
  • scrapy ---分布式爬虫

     原来scrapy的Scheduler维护的是本机的任务队列(待爬取的地址)+本机的去重队列(放在集合中)---》在本机内存中 如果把scrapy项目,部署到多台机器上,多台机器爬取的内容是重复的  所以实现分布式爬取的关键就是,找一台专门的主机上运行一个共享的队列比如Redis, 然后

    2024年02月16日
    浏览(38)
  • Python 爬虫—scrapy

    scrapy用于从网站中提取所需数据的开源协作框架。以一种快速、简单但可扩展的方式。 该爬虫框架适合于那种静态页面, js 加载的话,如果你无法模拟它的 API 请求,可能就需要使用 selenium 这种使用无头浏览器的方式来完成你的需求了 运行 代码中通过 main 方式运行调试 简

    2024年02月10日
    浏览(41)
  • Scrapy API 启动爬虫

    scarpy 不仅提供了 scrapy crawl spider 命令来启动爬虫,还提供了一种利用 API 编写脚本 来启动爬虫的方法。 scrapy 基于 twisted 异步网络库构建的,因此需要在 twisted 容器内运行它。 可以通过两个 API 运行爬虫:scrapy.crawler.CrawlerProcess  和  scrapy.crawler.CrawlerRunner 这个类内部将会开

    2023年04月09日
    浏览(35)
  • Scrapy-爬虫模板的使用

    Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。 Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类

    2023年04月09日
    浏览(27)
  • 爬虫之Scrapy

    一 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。但目前Scrapy的用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所返回的数

    2024年02月16日
    浏览(30)
  • 18.网络爬虫—Scrapy实战演示

    前言 : 🏘️🏘️个人简介:以山河作礼。 🎖️🎖️: Python领域新星创作者,CSDN实力新星认证 📝​📝第一篇文章《1.认识网络爬虫》获得 全站热榜第一,python领域热榜第一 。 🧾 🧾第四篇文章《4.网络爬虫—Post请求(实战演示)》 全站热榜第八 。 🧾 🧾第八篇文章《8

    2023年04月22日
    浏览(37)
  • Python爬虫---Scrapy架构组成

    Scrapy是一个Python编写的开源网络爬虫框架,它由五大核心组件构成:引擎(Engine)、调度器(Scheduler)、下载器(Downloader)、爬虫(Spider)和实体管道(Item Pipeline)。 引擎(Engine):它是Scrapy的核心,负责控制整个爬虫流程的运行,包括调度器、下载器和管道等组件的协调

    2024年01月16日
    浏览(42)
  • Python爬虫之Scrapy框架系列(23)——分布式爬虫scrapy_redis浅实战【XXTop250部分爬取】

    先用单独一个项目来使用scrapy_redis,讲解一些重要点!

    2024年02月16日
    浏览(56)
  • 网络爬虫(Python:Selenium、Scrapy框架;爬虫与反爬虫笔记)

    Selenium是一个模拟浏览器浏览网页的工具,主要用于测试网站的自动化测试工具。 Selenium需要安装浏览器驱动,才能调用浏览器进行自动爬取或自动化测试,常见的包括Chrome、Firefox、IE、PhantomJS等浏览器。 注意:驱动下载解压后,置于Python的安装目录下;然后将Python的安装目

    2024年01月18日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包