Scrapy是一个基于Python的开源网络爬虫框架,它可以帮助我们快速、高效地抓取网页数据,并支持数据的自动化处理、存储和导出。Scrapy提供了丰富的扩展机制,可以轻松地实现各种自定义需求。
Scrapy的基本使用流程:
1、安装Scrapy框架
2、创建一个Scrapy爬虫项目
3、编写爬虫代码,定义要抓取的网站以及如何抓取数据
4、运行爬虫,开始抓取数据
5、对抓取到的数据进行处理、存储或导出
Scrapy的优点:
1、高效稳定:Scrapy采用异步IO的方式进行爬取,能够较快地抓取大量数据,并且具有较高的稳定性和可靠性。
2、扩展性强:Scrapy提供了丰富的插件和扩展机制,可以轻松地实现各种自定义需求。
3、数据处理方便:Scrapy支持数据的自动化处理、存储和导出,可以方便地对抓取到的数据进行处理。
4、文档齐全:Scrapy提供了完善的官方文档和教程,初学者也能够快速上手。
初识scrapy
scrapy=scrap+python,是python自动化爬虫框架,相当于一个模板。当启动了一个scrapy工程后,会自动生成若干相互关联的文件,用户仅需根据特定需求更改文件中的具体内容即可。
5步完成scrapy爬虫
1、创建scrapy工程和基础爬虫
a.更改cmd目录:cd C:\Programs\Python\
b.创建一个scrapy项目:scrapy startproject ProName
c.创建一个基础爬虫类:scrapy genspider SpiName “url.com”
其中,cmd目录路径是工程的目标存放路径,ProName是scrapy项目的工程名,而SpiName则是爬虫名字,在最后启动该项目时即调用该爬虫名字,url.com是目标网站的域名,该项目还会根据域名自动生成爬虫初始页。当然,这些在后续文件中都可以手动更改,项目只是自动化生成了一个模板而已。
2、定义文件存储格式
打开爬虫下的item.py文件,定义抓取数据的存储实体
1class ProNameItem(scrapy.Item):
2 # define the fields for your item here like:
3 # name = scrapy.Field()
定义了item后,后续的抓取数据格式就都会按此存储。当然,可以在该文件中定义多类数据存储实体。
3、设计爬虫文件Spiders
在第1步的c中,创建了SpiName的基础爬虫后会自动生成一个SpiName.py文件,里面会声明一个SpinameSpider类,类下会至少包含四个要素:
class SpinameSpider(scrapy.Item):
name = 'SpiName'
allowed_domains = ['url.com']
start_urls = [http://url.com]
def parse(self, response):
其中start_urls可以是一组爬虫初始页,parse()是我们要定义的爬虫规则和获取数据方法,简单的爬虫也仅需更改此函数即可。
4、设置pipeline处理和存储数据
Pipeline原意是管道,实际上计算机专业里的流水线也是这个词。所以我们可以理解为该函数是对于抓取实体进行的一整套处理方法,包括常见的格式审查、数据去重和存入数据库中等等。
5、设置settings
进行简单的项目设置,该文件可以进行请求模拟头(UA)设置、多pipeline间优先级等,这也直接决定了该项目会如何启动爬虫及数据处理,不同的优先级会带来完全不同的效果。