Python网络爬虫(scrapy框架的基本使用)

Scrapy是用纯Python实现的一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。

scrapy执行流程:

1.spiders(爬虫文件)将提取到的url传给Scrapy Engine(引擎)

  1. 然后通过引擎再传给Scheduler(调度器),Scheduler(调度器)把接收到的url存放在任务队列中
  2. 引擎再从任务队列里取出url通过Downloader Middlewares(下载中间件)传给Downloader(下载器)发起请求
  3. Downloader(下载器)请求网络然后把response(响应结果)通过Downloader Middlewares(下载中间件)传给引擎,再通过Spider Middlewares(爬虫中间件)返回给Spiders(爬虫文件)
  4. 最后爬虫文件把提取到的数据传给Item Pipeline(管道文件)-数据队列。

Scrapy的安装介绍:
  • Windows 安装方式
    -- Python 3
    -- 升级pip版本

       pip3 install --upgrade pip
    

通过pip3 安装 Scrapy 框架

   pip3 install Scrapy
  • Linux 安装方式
    通过pip3 安装 Scrapy 框架

      sudo pip3 install scrapy
    

如果安装不成功再试着添加这些依赖库

   sudo apt-get install python3-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev

基本项目流程为:

1、创建一个Scrapy项目

# 创建爬虫项目
scrapy startproject jobboleproject

# 新建爬虫文件
scrapy genspider jobbole [jobbole.com](http://jobbole.com)

2、定义提取的Item

比如我们打算抓取: 目标url:

http://blog.jobbole.com/all-posts/

3、编写爬取网站的spider并提取Item

#标题
title = scrapy.Field()
#创建时间
create_date = scrapy.Field()
#文章地址
url = scrapy.Field()
#id
url_object_id = scrapy.Field()
#文章图片
front_image_url = scrapy.Field()

4、编写Item Pipeline来存储提取到的Item(即数据)

--item pipiline组件是一个独立的Python类,其中process_item()方法必须实现:

class JobbolePipeline(object):
    def __init__(self):    
        # 可选实现,做参数初始化等
        # doing something

    def process_item(self, item, spider):
        # item (Item 对象) – 被爬取的item
        # spider (Spider 对象) – 爬取该item的spider
        # 这个方法必须实现,每个item pipeline组件都需要调用该方法,
        # 这个方法必须返回一个 Item 对象,被丢弃的item将不会被之后的pipeline组件所处理。
        return item

    def open_spider(self, spider):
        # spider (Spider 对象) – 被开启的spider
        # 可选实现,当spider被开启时,这个方法被调用。

    def close_spider(self, spider):
        # spider (Spider 对象) – 被关闭的spider
        # 可选实现,当spider被关闭时,这个方法被调用

5、运行:

 scrapy crawl jobbole
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文希望达到以下目标: 简要介绍Scarpy 阅读官网入门文档并实现文档中的范例 使用Scarpy优豆瓣爬虫的抓取...
    Andrew_liu阅读 82,266评论 30 177
  • scrapy学习笔记(有示例版) 我的博客 scrapy学习笔记1.使用scrapy1.1创建工程1.2创建爬虫模...
    陈思煜阅读 14,374评论 4 46
  • 没错,我成为了《大圣归来》的自愿而来的水军,简称自来水。 一开始,好友拉我去看《大圣归来》,我嗤一声鼻腔(此处省略...
    余小头阅读 2,900评论 2 0
  • 原来猫同人一样,会思考自己的猫生。活着的意义:…?为什么而活?为生活,为钱发愁,为天天有小鱼干而学会卖萌。如果卖萌...
    adff4a937f42阅读 1,310评论 0 1
  • 快乐,你就不孤单 “有什么不开心的,说出来让大家高兴一下”,自己的生活平淡无奇,甚至经常会很无聊,闲暇的时间不知道...
    流星狂飙阅读 4,702评论 0 6

友情链接更多精彩内容