NO.1_python_scrapy组成&爬取多页数据&连接数据库配置文件书写

在这里插入图片描述

scrapy框架组成及各部分作用

item pipelines:

用于存放需要存储数据的数据模型,一般格式为:

#需要存储多少中类型的数据就写多少行,一般是key_value组合
'数据名称,即·key' = scrapy.Field()

spiders

用于解析返回来的response

import scrapy 
from 项目名称.items import QSBKItem
#QSBKItem 在items.py中的一个类,装有数据模型
......
item = QSBKItem('字典中对应的key'='items.py中对应的模型名称')
#返回item,item是一个字典的形式,将item返回给了engine
yield item

engine

爬虫引擎,作为各个模块的中转站

pipelines

用于存储和过滤由spider爬取回来的数据,比如可以将数据存入数据库中等等

#这个函数是一定需要的,用于接收返回过来的item数据,并且执行保存和过滤数据的操作
def process_item(self,item,spider):
	......
#可有可无,在打开爬虫时运行的函数,一般是在需要爬虫在打开时执行某些操作时才需要该函数
def open_spider(self,spider):
	......
#可有可无,在关闭爬虫时运行的函数,一般是在需要爬虫在关闭时执行某些操作时才需要该函数
def close_spider(self,spider):
	......

Download

用于执行spider发出的网页请求,并且从网页中进行下载

scheduler

用于调度,如调度多url的请求,重复url的处理等

爬取多页数据

self.p += 1
if self.p <= 10:
	next_url = 'https://edu.csdn.net/courses/o280/p'+str(self.p)
	url = response.urljoin(next_url)#创建绝对url地址
	#再次调用parse函数来进行解析next_url
	yield scrapy.Request(url = url,callback = self.parse)

连接数据库的配置文件书写

ITEM_PIPELINES = {
	#后面的数字越小执行的顺序越靠前,是自动生成的
	educsdn.pipelines.Edu .... = 300,
	educsdn.mysqlines.Edu .... = 301
}
	MYSQL_HOST='localhost'
	MYSQL_DATABASE = '数据库的名称'
	MYSQL_USER = '用户名'
	MYSQL_PASS = '密码'
	MYSQL_PORT = '端口'#一般为3306
发布了39 篇原创文章 · 获赞 11 · 访问量 435

猜你喜欢

转载自blog.csdn.net/qq_45769063/article/details/104531728