IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Scrapy 基本使用总结 -> 正文阅读

[Python知识库]Scrapy 基本使用总结

目录

一、Scrapy框架安装

二、创建Scrapy项目

三、创建爬虫文件

四、运行spider文件

五、各个组件功能

1、spider目录下的文件

2、settIngs.py配置文件

3、持久化存储步骤


一、Scrapy框架安装

pip install Scrapy

conda install Scrapy

二、创建Scrapy项目

scrapy startproject 项目名

三、创建爬虫文件

进入项目路径:

scrapy genspider 爬虫文件名 爬虫文件的url

创建后会在spider目录下生成,介绍如下:

import scrapy


class ItcastSpider(scrapy.Spider):
    name = 'itcast'  # 爬虫名,爬虫文件的唯一标志
    allowed_domains = ['itcast.cn']  # 允许爬取的范围
     # 最开始请求的url地址,可以为多个,默认会自动发起get请求
    start_urls = ['http://www.itcast.cn/channel/teacher.shtml'] 

    def parse(self, response):
        # response即为响应回的数据
        # 用于请求后的数据解析
        # 处理start_url地址对应的响应
        ret1 = response.xpath("//div[@class='tea_con']//h3/text()")
        print(ret1)

四、运行spider文件

到项目路径下:

scrapy crawl 爬虫文件名(不要后缀)

五、各个组件功能

1、spider目录下的文件

负责数据解析

parse里数据解析时,使用的xpath和etree.xpath有所不同的是返回的对象是selector对象,需要使用extract()方法来获取每条数据。

获取返回的selector对象的数据相应的方法:

方法描述
.extract()解析selector对象后返回数组
.extract_first()和extract()方法类似但返回的是第一条数据

2、settIngs.py配置文件

常用的属性

属性描述
LOG_LEVEL一般为WARNING或ERROR,在该层级以上时才会打印日志,默认打印所有日志。
USER_AGENTUA伪装。
ROBOTSTXT_OBEYrobots协议,一般使用都要禁止,False。
ITEM_PIPELINES开启后便开启了管道类的使用,里面的数字代表优先级,数字越小优先级越高。

3、持久化存储步骤

(1)items.py里定义与parse解析好返回相同数量的变量容器

如:

# Define here the models for your scraped items
#
# See documentation in:
# https://docs.scrapy.org/en/latest/topics/items.html

import scrapy


class Scrapypro01Item(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    # Field()定义的变量当做万能类型的变量
    title = scrapy.Field()
    content = scrapy.Field()

(2)持久化存储前的准备,爬虫解析文件里的parse()方法需返回对应的Item对象

如:

import scrapy
from scrapyPro01.items import Scrapypro01Item


class ItcastSpider(scrapy.Spider):
    name = 'itcast'
    allowed_domains = ['itcast.cn']
    start_urls = ['http://www.itcast.cn/channel/teacher.shtml']

    def parse(self, response):
        title = "title"
        content = "content"

        # 创建items.py里对应的对象,记得先导包
        item = Scrapypro01Item()
        item["title"] = title
        item["content"] = content

        # 将item对象提交给管道
        yield item

(3)利用管道类持久化存储

使用管道类之前需要先开启配置类里的管道类配置,见settings.py的使用

如:

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html


# useful for handling different item types with a single interface
from itemadapter import ItemAdapter


class Scrapypro01Pipeline:

    def open_spider(self, spider):
        self.fp = open("test.txt", "w", encoding="utf-8")
        # 该方法只会在爬虫开始时执行一次

    def close_spider(self, spider):
        # 该方法只会在爬虫结束时执行一次
        self.fp.close()

    def process_item(self, item, spider):
        # 该方法用来接收item对象,一次只能接收一个,可以接收多次
        # 参数item就是接收的item对象
        # 写入文件
        self.fp.write(item["title"] + ":" + item["content"] + "\n")
        return item

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:24:55  更:2022-03-08 22:27:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 22:51:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码