如何使用scrapy框架(笔记)

本文介绍了Scrapy的安装过程,通过pip在Python3.10环境下安装。接着展示了创建Scrapy项目,生成爬虫及运行命令。文章还提供了爬虫代码示例,解释了如何进行网页数据解析,并提到了数据管道的概念,用于处理和存储爬取的数据。
摘要由CSDN通过智能技术生成

scrapy安装步骤,打开dos窗口,输入:pip install scrapy,安装完成即可,安装完成后可能会出现WARNING,属于是pip警告,和scrapy无关,使用环境为python3.10

首先,在终端输入创建命令:创建项目命令:scrapy startproject taobao

进入taobao目录,输入:scrapy genspider+名字+域名

运行项目命令:scrapy crawl +名称

代码:(.py文件均在创建项目时创建,没有额外创建新的.py文件)

#xiao.py
import scrapy


class XiaoSpider(scrapy.Spider):
    name = "xiao" #爬虫名字
    allowed_domains = ["4399.com"] #爬虫运行抓取的域名
    start_urls = ["https://www.4399.com/special/13.htm"] #起始页面

    def parse(self, response): #该方法默认用来处理解析
        # response.json() #获取json
        # response.xpath() #数据解析
        # response.css() #通过css对数据进行解析

        # txt = response.xpath("//ul[@class='tm_list']/li/a/b/text()").extract() #提取内容extract()
        # print(txt)

        txt_list = response.xpath("//ul[@class='tm_list']/li")
        for li in txt_list:
            name = li.xpath("./a/b/text()").extract_first() #extract_first()提取一项内容,如果没有,返回None
            categroy = li.xpath('./em/a/text()').extract_first()
            date = li.xpath('./em/text()').extract_first()
            print(name)
            print(categroy)
            print(date)
            print('-'*200)

            dic = {
                "name" : name,
                "categroy" :categroy,
                "date" :date
            }
            #需要用yield将数据传给管道
            yield dic #节约运行内存,如果返回的是数据,直接可以认为是给了管道pipline


#自行添加:
LOG_LEVEL ='WARNING'


大概在第67行
#数据管道,解除注释即可开启管道
ITEM_PIPELINES = {
    #key:管道的路径
    #value:管道的优先级,数越小,优先级越高。默认300
   "game.pipelines.GamePipeline": 300,
   "game.pipelines.NewPipeline": 299,
}
#管道默认不生效,需要去setting里面去开启管道
class GamePipeline:
    def process_item(self, item, spider): #方法定死,不可修改,处理数据的专用方法,item:数据,spider:爬虫
        print(item)
        print(spider.name)
        print('*'*200)
        return item #传递给下一个管道


#管道默认不生效,需要去setting里面去开启管道
class NewPipeline:
    def process_item(self, item, spider): #方法定死,不可修改,处理数据的专用方法,item:数据,spider:爬虫
        item ['rilgou'] = '管道测试,日了狗'#向管道中插入数据,item['key'] = 'value'
        return item #传递给下一个管道

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诗经不是湿巾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值