scrapy详细理解,以及5大模块

Scrapy

# 创建项目
scrapy startproject   baidu
#记住这条命令在哪里文件就会创建在哪里

# 创建 spiders  必须要在项目的目录的目录下
scrapy genspider baidu0.1 www.baidu.com

#运行spiders
scrapy genspiders name
# 执行这条语句必须在 scrapy.cfg 同级的目录下
#一个项目的组成
	spiders  #这是一个包,爬虫所需要的逻辑
	items.py #用于数据的处理(item对象),清洗,存储,验证,数据持久化
	pipelines.py #与items一起使用
	settings.py # 项目配置文件 ,如配置 pipelines的优先级,爬取速度
	middlewares.py #用于spiders和引擎,Downloader和引擎,调度器和引擎之间。

spiders 爬虫所需要的逻辑

# spiders是一个包,包中可以有多个爬虫逻辑
#创建一个spiders
# scrapy genspider  dianliang  219.142.16.190:9001
# 其中第三个参数为 爬虫名称  
# 第四个参数为  爬取的url

import scrapy
# 导包 items
from neiwang.items import qutoItem
class paqu1Spider(scrapy.Spider):
    #爬虫的名字
	name = "paqu1"
    #允许爬虫作用的范围
    allowed_domain = ['xxxx']
    start_urls = ['xxxx']  #爬取的起始url
    def pase(self.response):
        #实例化 item对象
        item = qutoItem()
        
        # 存 
        # item['text']= text
        pass

items.py #存储的数据结构

import scrapy
class qutoItem(scrapy.Item):  # 可在settings中设置这个 类的优先级
    #position 职位
	text=scrapy.field()
    title = scrapy.field()

pipelines.py # 以管道的方式处理items

# 返回的格式有两种,1是item 2 是DropItem
class Textpipeine(object):
    #一般写的都是数据库的接口
    #对数据格式的处理
    def __init__(self): 

settings.py

#配置数据库
# 配置管道
# 配置headers的参数
#配置ip等
# 设置下载延迟
DOWNLOAD_DELAY = 2 #设置每次的下载延迟为2秒

DEFAULT_REQUEST_HEADERS = {
    "User=Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
}

#图片保存位置
IMAGES_STORE = 'usr/tu/images'

middlewares.py

# 中间件

scrapy的安装

# 需要安装依赖包
 Twisted-18.7.0  #没有这个依赖是不行的
 # 还需要windows的环境 
 	pip install pywin32

配置scrqpy的运行命令

from scrapy import cmdline

cmdline.execute(['scrapy','crawl','baidu']) #参数是一个列表  其实参数是一个,但是 他用逗号分开 所以是三个

# 也可以写
cmdine.execute('scrapy crawl baidu'.split())  # 按命令行运行与普通的是有区别 ,区别在于 日志是红色的,网址是蓝色的,自己打印的是黑色的
# 	scrapy crawl ceshi0.1 -o baocun.json  # 表示保存为外部文件
# split的作用 是使用split()括号中的东西切割它
# 如
a = " abvdajfksdjfka"
print(a.split("a"))  # [' ', 'bvd', 'jfksdjfk', '']
scrapy对数据做了封装,必须对对象做处理
response.xpath('//a/text()').excract()  #不加为选择器匹配的对象
#extract()   将匹配出的结果转换为unicode字符串
# 只要是xpath取出的元素都是列表

你可能感兴趣的:(scrapy详细理解,以及5大模块)