python 基础之scrapy 原理练习

1、Scrapy Engine(引擎组件):
负责Spider、ItemPipeline、Downloader、Scheduler的工作调度、信息通讯、数据传递等工作
2、Scheduler(调度组件):
负责接收引擎传递过来的请求,按照具体规则添加队列处理,最终返回给引擎
3、Downloader(下载组件):
负责下载引擎传递过来的所有Request请求,最终服务器的响应数据返回给引擎组件
4、Spider(爬虫):
处理所有Response响应,分析提取Item数据
如果数据中有二次请求,继续交给引擎组件
5、ItemPipeline(管道):
负责[分析、过滤、存储]处理由Spiders获取到的Item数据

1、引擎向spiders要url
2、引擎将要爬取的url给调度器
3、调度器会将url生成请求对象放入到指定的队列中
4、从队列中出队一个请求
5、引擎将请求交给下载器进行处理
6、下载器发送请求从互联网上获取数据
7、下载器将数据返回给引擎
8、引擎将数据再次给spiders
9、spiders通过xpath解析器解析数据,解析到数据或者url
10、spiders将数据或者url给引擎
11、引擎判断是数据还是url,数据交给管道处理,url交给调度器处理
12、管道将数据持久化存储

新版scrapy 简单好用

import scrapy

class CarhomeSpider(scrapy.Spider):
    name = "carhome"
    allowed_domains = ["car.autohome.com.cn"]
    start_urls = ["https://car.autohome.com.cn/price/brand-15.html"]

    def parse(self, response):
        price_list = response.xpath("//div[@class='main-lever-right']//span[1]/text()")
        # for index in context:
        #     cat_price = context[index]
        #     print(cat_price)
        name_list = response.xpath("//div[@class='main-title']/a/text()")

        for i in range(len(name_list)):
            name = name_list[i]
            price = price_list[i]
            print(name,price)
posted @ 2024-07-16 12:13  donghongchao  阅读(3)  评论(0编辑  收藏  举报