爬虫_scrapy_项目结构目录和基本方法

1.scrapy的项目结构

scrapy项目的结构
    项目名字
        项目名字
            spiders文件夹(存储的是爬虫文件)
                init.py(默认文件)
                自定义的爬虫文件(核心功能文件*)
            init
            items 定义数据结构的地方,爬取的数据都包含那些
            middleware 中间件  例如:代理
            pipelines  管道  用来处理下载的数据
            settings  配置文件  例如:robots协议 ua定义等

 

 2.response的属性和方法

response.text 获取的是响应的字符串
response.body 获取的是二进制数据
response.xpath 可以直接是xpath方法来解析response中的内容(常用)
response.extract() 提取selector对象的data属性值(常用)
response.extract_first() 提取的slector列表(常用)

 

import scrapy


class TcSpider(scrapy.Spider):
    name = 'tc'
    allowed_domains = ['https://hrb.58.com/sou/?key=%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91']
    start_urls = ['https://hrb.58.com/sou/?key=%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91']

    def parse(self, response):
        # 字符串
        content = response.text
        # 二进制数据
        # content = response.body
        # xpath
        span = response.xpath('//div[@id="filter"]/div[@class="tabs"]/a/span')[0]
        print('======================')
        print(span.extract())

 

 3.scrapy架构组成

(1)引擎

  自动运行,无需关注,会自动组织说有的请求对象,分发给下载器。

(2)下载器

  从引擎处获取到请求对象后,请求数据

(3)spiders

  spider类定义了如何爬取某个(某些)网站。包括了爬取的动作以及如何从网页的内容中提取结构化数据。换句话说,spider就是您定义爬取的动作及分析某个网页的地方。

(4)调度器

  有自己的调度规则,无需关注。

(5)管道

  最终处理数据的管道,会预留接口供我们处理数据。

  典型应用:

    ①清理html数据

    ②验证爬取的数据(检查item包含某些字段)

    ③查重(并丢弃)

    ④将爬取结果保存到数据库中

 4.scrapy工作原理

 

posted @ 2022-05-30 11:14  创客未来  阅读(215)  评论(0编辑  收藏  举报