Python爬虫:用Scrapy框架爬取漫画(1)

项目创建

通过命令行在当前路径下创建一个名为 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路径下,运行命令,启动爬虫任务开始爬取网页。

scrapy crawl comics

打印的结果为爬虫运行过程中的信息,和目标爬取网页的html源码。

2016-11-26 22:04:35 [scrapy] INFO: Scrapy 1.2.1 started (bot: Comics)

2016-11-26 22:04:35 [scrapy] INFO: Overridden settings: {‘ROBOTSTXT_OBEY’: True, ‘BOT_NAME’: ‘Comics’, ‘NEWSPIDER_MODULE’: ‘Comics.spiders’, ‘SPIDER_MODULES’: [‘Comics.spiders’]}

2016-11-26 22:04:35 [scrapy] INFO: Enabled extensions:

[‘scrapy.extensions.corestats.CoreStats’,

‘scrapy.extensions.telnet.TelnetConsole’,

‘scrapy.extensions.logstats.LogStats’]

此时,一个基本的爬虫创建完成了,下面是具体过程的实现。

爬取漫画图片


起始地址

爬虫的起始地址为:

http://www.xeall.com/shenshi

我们主要的关注点在于页面中间的漫画列表,列表下方有显示页数的控件。如下图所示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值