
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
本次IT技术行业的小编跟大家分享Scrapy爬虫框架的创建项目、创建Spider这两部分的知识,这一部分是创建Spider的入门知识,大家快学起来吧!
创建项目
在抓取之前,你必须要先创建一个Scrapy项目,可以直接用scrapy命令生成,命令如下:
scrapy startproject tutorial
在任意文件夹运行都可以,如果提示权限问题,可以加sudo运行。这个命令将会创建一个名字为tutorial的文件夹,文件夹结构如下:
|____scrapy.cfg # Scrapy部署时的配置文件
|____tutorial #项目的模块,引入的时候需要从这里引入
| |______init__.py
| |______pycache__
| |____items.py # Items的定义,定义爬取的数据结构
| |____middlewares.py # Middlewares的定义,定义爬取时的中间件
| |____pipelines.py # Pipelines的定义,定义数据管道
| |____settings.py #配置文件
| |____spiders #放置Spiders的文件夹
| | |______init__.py
| | |______pycache__
创建Spider
Spider是由你来定义的Class,Scrapy用它来从网页里抓取内容,并将抓取的结果解析。不过这个Class必须要继承Scrapy提供的Spider类scrapy.Spider,并且你还要定义Spider的名称和起始请求以及怎样处理爬取后的结果的方法。
创建一个Spider也可以用命令生成,比如要生成Quotes这个Spider,可以执行命令。
cd tutorial
scrapy genspider quotes
首先进入到刚才创建的tutorial文件夹,然后执行genspider这个命令,第一个参数是Spider的名称,第二个参数是网站域名。执行完毕之后,你会发现在spiders文件夹中多了一个quotes.py,这就是你刚刚创建的Spider,内容如下:
# -*- coding: utf-8 -*-
import scrapy
class QuotesSpider(scrapy.Spider):
name = "quotes"
allowed_domains = ["#"]
start_urls = ['#/']
def parse(self, response):
pass
可以看到有三个属性,name,allowed_domains,start_urls,另外还有一个方法parse
name,每个项目里名字是唯一的,用来区分不同的Spider。
allowed_domains允许爬取的域名,如果初始或后续的请求链接不是这个域名下的,就会被过滤掉。
start_urls,包含了Spider在启动时爬取的url列表,初始请求是由它来定义的。
parse,是Spider的一个方法,默认情况下,被调用时start_urls里面的链接构成的请求完成下载后,返回的response就会作为唯一的参数传递给这个函数,该方法负责解析返回的response,提取数据或者进一步生成要处理的请求。
关于Scrapy爬虫框架是创建的知识小编就跟大家分享到这了,更多资讯请关注昆明达内官网:http://km.tedu.cn