初步搭建并使用Scrapy框架

目录

目标

版本

实战

搭建框架

获取图片链接、书名、价格

通过管道下载数据

通过多条管道下载数据

下载多页数据


目标

        掌握Scrapy框架的搭建及使用,本文以爬取当当网魔幻小说为案例做演示。


版本

        Scrapy 2.12.0


实战

搭建框架

第一步:在D:\pytharm_workspace位置创建爬虫Scrapy项目。通过cmd在该目录执行Scrapy创建项目命令。dangdang是我的项目名称。

scrapy startproject dangdang

第二步:进入项目目录,并创建爬虫类。其中magic_novels是我自定义的爬虫程序名称,permit.mee.gov.cn表示要爬取的网站域名。

第三步:注释在settings文件中掉OBOTSTXT_OBEY协议。

#ROBOTSTXT_OBEY = True

第四步:打开Pycharm控制台,进入项目目录。设置start_urls为我们要爬取的首页。parse表示项目启动后会自动请求start_urls中的URL。所以我们在parse方法中调试输出,并运行项目。

import scrapy


class MagicNovelsSpider(scrapy.Spider):
    name = "magic_novels"
    allowed_domains = ["category.dangdang.com"]
    start_urls = ["https://category.dangdang.com/cp01.03.40.00.00.00.html"]

    def parse(self, response):
        print(response.url)
        print(response.text)

 scrapy crawl magic_novels

第五步:此时会打印很多的无用信息,我们可以在settings.py文件中设置日志级别。再次启动项目后会发现页面干净了很多。

LOG_LEVEL = "WARNING"
scrapy crawl magic_novels
注意:如果多次请求导致可能会导致缓存出现,请使用以下命令:
scrapy crawl magic_novels --set HTTPCACHE_ENABLED=False

获取图片链接、书名、价格

第一步:通过xpath爬取价格、图片、书名,我们先来打印调试。此时发现图片的链接不对,思考是否是懒加载的一个反扒策略。

    def parse(self, response):
        '''
            图片的链接:src=//ul[@id='component_59']/li//img/@src
            图片的名称:alt=//ul[@id='component_59']/li//img/@alt
            图书的价格:price=//ul[@id='component_59']/li//p[@class='price']/span
            考虑到所有的数据都来源于//ul[@id='component_59']/li,所以我们可以复用li对象。
        '''
        li_list = response.xpath("//ul[@id='component_59']/li")
        for li in li_list:
            print(f'图片的链接:src={li.xpath(".//img/@src").extract_first()}')
            print(f'图片的名称:alt={li.xpath(".//img/@alt").extract_first()}')
            print(f'图书的价格:price={li.xpath(".//p[@class=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值