Scrapy爬虫爬取书籍网站信息(一)

本文介绍如何使用Scrapy爬虫框架爬取书籍网站的数据,包括书名、价格等信息,并将结果存储为CSV文件。通过scrapy shell进行网页分析,提取书籍详情页链接,并展示在shell中调用view函数进行页面查看的操作流程。
摘要由CSDN通过智能技术生成

本文运用了Scrapy爬虫的知识,爬取了点击打开链接网站中的书籍信息,可以了解到基本Scrapy爬虫框架的使用方法。

一、项目需求:

     1、其中每本书的信息包括:书名、价格、评价等级、产品编码、库存量、评价数量。

     2、将爬取的结果保存到csv文件中。

二、在前期分析网页页面时,可以用Chrome开发者工具,也可以用scrapy shell<URL>命令,如下:

Chrome开发者工具这里不做介绍了,第二种方法在命令提示符下输入scrapy shell<URL>即可在交互式命令下操作一个Scrapy爬虫,如:scrapy shell http://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html,(这里操作的是第一本书籍的页面),部分截图如下:


接下来,在scrapy shell中调用view函数,在浏览器中显示response所包含的页面:即输入:view(response)

在进行页面分析时,使用view函数打开的页面要比使用Chrome审查元素工具更加可靠。如下图:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是爬取图书网的实验步骤: 1. 创建 Scrapy 项目 使用命令行工具创建一个新的 Scrapy 项目,例如: ``` scrapy startproject books_crawler ``` 2. 定义 Item 在 `items.py` 文件中定义我们要爬取的数据模型,例如: ```python import scrapy class Book(scrapy.Item): title = scrapy.Field() author = scrapy.Field() price = scrapy.Field() description = scrapy.Field() ``` 3. 定义 Spider 在 `spiders` 目录下创建一个新的 Spider,例如: ```python import scrapy from books_crawler.items import Book class BooksSpider(scrapy.Spider): name = 'books' allowed_domains = ['example.com'] start_urls = ['http://example.com/books/'] def parse(self, response): books = response.css('div.book') for book in books: item = Book() item['title'] = book.css('h2.title::text').get() item['author'] = book.css('p.author::text').get() item['price'] = book.css('p.price::text').get() item['description'] = book.css('p.description::text').get() yield item ``` 在 Spider 中,我们首先定义了 Spider 的名称、允许的域名和起始 URL。然后在 `parse` 方法中,使用 CSS Selector 提取书籍数据,并将其存储为 Item 对象。最后,使用 `yield` 关键字将 Item 对象传递给 Scrapy 引擎。 4. 配置 Pipeline 在 `settings.py` 文件中配置 Scrapy Pipeline,例如: ```python ITEM_PIPELINES = { 'books_crawler.pipelines.BooksCrawlerPipeline': 300, } FEED_FORMAT = 'csv' FEED_URI = 'books.csv' ``` 我们将数据存储在一个 CSV 文件中,因此需要将 `FEED_FORMAT` 设置为 `csv`,并指定 CSV 文件的路径。同时,将 `ITEM_PIPELINES` 设置为一个字典,其中包含我们定义的 Pipeline 类和优先级。 5. 定义 Pipeline 在 `pipelines.py` 文件中定义 Scrapy Pipeline,例如: ```python import csv class BooksCrawlerPipeline: def __init__(self): self.file = open('books.csv', 'w', newline='') self.writer = csv.writer(self.file) self.writer.writerow(['Title', 'Author', 'Price', 'Description']) def process_item(self, item, spider): self.writer.writerow([item['title'], item['author'], item['price'], item['description']]) return item def close_spider(self, spider): self.file.close() ``` 在 Pipeline 中,我们首先定义了一个 CSV 文件,并创建了一个 CSV writer 对象。然后,在 `process_item` 方法中,将每个 Item 对象写入 CSV 文件。最后,在 `close_spider` 方法中,关闭 CSV 文件。 6. 运行 Spider 使用如下命令启动爬虫: ``` scrapy crawl books ``` 如果一切正常,Scrapy 将开始爬取图书网,并将提取的数据存储在 `books.csv` 文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值