【scrapy】——个人笔记

scrapy简介

Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等。

本文简单的叙述了如何使用scrapy,设计并运行一个简单的案例,以及scrapy框架的各个部分的功能和作用,方便大家使用拓展。并对scrapy有一个完整的认识。

在使用scrapy框架之前,最好已经掌握基本的requests爬取方法,以及xpath、BS、css、正则表达式等解析方法的一种。

scrapy爬虫整体框架

以下是使用scrapy爬虫框架建立并运行爬虫项目的整个流程,之后会使用一个案例,按照这个流程来实现一个简单的操作。

第一,更改目录,改成要建立爬虫工程的文件目录,创建爬虫。

-- cd pycodes                                   (创建一个目录,存放工程文件) 
-- scrapy startproject python123demo            (创建工程,工程名称) 
-- cd python123demo                             (转移到工程目录中) 
-- scrapy genspider demo python123.io           (生成一个爬虫,叫demo,最后一个为域名,只能爬取这个域名一下的相关链接)

第二,修改demo的代码,完善爬虫的功能,配置爬虫文件。和常规爬虫的代码类似。

  --sitting相关配置,
       -- ROBOTSTXT = FALSE   
       -- 任意位置加上:LOG_LEVEL = 'ERROR'
       -- 改use-agent: 复制粘贴,该游览器代理
       -- 开启管道,可以多通道处理:  'taobao.pipelines.TaobaoPipeline': 300,数值表示的是优先级,数值越小,优先级越高
   
   
   --parse解析response
       -- 直接使用response.xpath()方法,xpath语法和正常的一样处理
       -- xpath返回的是列表,列表元素是selector类型,使用'.extract()'方法转换成字符串,列表则是转换每一个列表元素转换成字符串,还有extract_first()方法
       -- 使用content= ''.join(content),用空白字符连接content中的元素,实现一个链接的功能。  


   --item,每次yield item就会调用一次item类
       -- spider中导入item类
       -- items创建管道: # name = scrapy.Field()
       -- 在parse中引入管道: 
           -- item = Python1Item()
           -- 把数据提交给item: item['title'] = a.xpath('p/text()').extract()
       -- 将item提交给管道:
           -- yield item
           
           
   --pipelines操作:持久化处理,多个管道类似操作,新建一个管道类,打开文件一次,写入N次,关闭一次: 
       -- 初始有一个process_item方法,用来处理item对象
       -- 承接item对象的数据:      movie = item['movie']
       -- 打开操作:
           -- 重写一个父类的方法,只会被爬虫调用一次:
               -- def open_spider(self,spider):
       -- 关闭文件操作:
           -- 重写一个父类方法:
               -- def close_spider(self,spider):

整体的流程图如下所示(官网):
在这里插入图片描述

第三,运行爬虫:scrapy crawl demo(这个为爬虫的名字)

图片爬取案例

本文使用pycharm编辑器,scrapy框架实现图片的爬取,关于scrapy框架的安装,之后会进行补充,没有其他特殊的第三方库。

- 1.1 新建项目

打开pycharm,在Terminal中,在指定的工作目录下建立爬虫项目:
在这里插入图片描述

cd path   #转到某个path下
scrapy startproject Pic     #在该path下新建一个爬虫项目,名称叫做Pic

然后再工作目录下,就可以看到生成的Pic文件夹,里面包含了一些配置文件,文件的具体作用和功能之后会详细描述:
在这里插入图片描述
这样,第一步就完成了。

- 1.2 生成爬虫文件

先转到spider文件夹中,再生成spider文件:

cd Pic      #转到Pic文件夹中
scrapy genspider download baodu.com     #生成spider,名称为:download,爬取的域名为:baidu.com

在这里插入图片描述
上面两个操作,scrapy也给出了提示:you can start your first spider with…,可以在工作目录下看到新建的download.py文件。

这样已经完成了项目的建立和spider文件的建立,接下来就是修改相关的配置文件,达到我们的目的。

- 1.3 修改spider

在这里插入图片描述
初始的download.py是这样的,我们要修改相关的参数,并解析网页,获取图片,并传递给item。

删去allowed_domains,允许域名表示我们只能在该域名下爬取,为了取消限制,故删去。

以彼岸图网为例,把start_urls改成https://pic.netbian.com/,然后写parse,获取图片。解析图片和常规的requests相同,在此不做详细介绍。

- 2.1 修改配置文件

在Pic文件夹中,有setting、item、pipeline、middleware、init五个文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值