Python爬虫:用Scrapy框架爬取漫画

本文详细介绍了如何使用Python的Scrapy框架爬取漫画图片。从scrapy环境配置、项目创建、Spider类创建到爬取漫画图片的步骤,包括起始地址、漫画URL的获取、图片保存等,提供了爬虫实现的完整流程。文章还提醒了在爬取过程中可能遇到的问题及解决方法,并鼓励读者进一步学习Scrapy的高级特性和配置。
摘要由CSDN通过智能技术生成

本篇文章,通过 scrapy 框架来实现相同的功能。scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架。关于框架使用的更多详情可浏览官方文档,本篇文章展示的是爬取漫画图片的大体实现过程。

scrapy环境配置

安装

首先是 scrapy 的安装,博主用的是Mac系统,直接运行命令行:

pip install Scrapy

对于html节点信息的提取使用了 Beautiful Soup 库,大概的用法可见之前的一篇文章,直接通过命令安装:

pip install beautifulsoup4

对于目标网页的 Beautiful Soup 对象初始化需要用到 html5lib 解释器,安装的命令:

pip install html5lib

安装完成后,直接在命令行运行命令:

scrapy

可以看到如下输出结果,这时候证明scrapy安装完成了。

Scrapy 1.2.1 - no active project

Usage:
  scrapy <command> [options] [args]

Available commands:
  bench         Run quick benchmark test
  commands      
  fetch         Fetch a URL using the Scrapy downloader
  genspider     Generate new spider using pre-defined templates
  runspider     Run a self-contained spider (without creating a project)
  settings      Get settings values
  ...

项目创建

通过命令行在当前路径下创建一个名为 Comics 的项目

scrapy startproject Comics

创建完成后,当前目录下出现对应的项目文件夹,可以看到生成的Comics文件结构为:

|____Comics
| |______init__.py
| |______pycache__
| |____items.py
| |____pipelines.py
| |____settings.py
| |____spiders
| | |______init__.py
| | |______pycache__
|____scrapy.cfg

Ps. 打印当前文件结构命令为:

find . -print | sed -e 's;{FNXX==XXFN}*/;|____;g;s;____|; |;g'

每个文件对应的具体功能可查阅官方文档,本篇实现对这些文件涉及不多,所以按下不表。

创建Spider类

创建一个用来实现具体爬取功能的类,我们所有的处理实现都会在这个类中进行,它必须为 scrapy.Spider 的子类。

在 Comics/spiders 文件路径下创建 comics.py 文件。

comics.py 的具体实现:

#coding:utf-8

import scrapy

class Comics(scrapy.Spider):

    name = "comics"

    def start_requests(self):
        urls = ['http://www.xeall.com/shenshi']
        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)

    def parse(self, response):
        self.log(response.body);

自定义的类为scrapy.Spider的子类,其中的name属性为该爬虫的唯一标识,作为scrapy爬取命令的参数。其他方法的属性后续再解释。

运行

创建好自定义的类后,切换到Comics路径下,运行命令,启动爬虫任务开始爬取网页。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值