Python爬虫:使用Scrapy框架爬取豆瓣读书和评分
2024.01.17 17:56浏览量:10简介:本文将介绍如何使用Python的Scrapy框架来爬取豆瓣读书的书籍信息和评分。我们将通过实例展示如何设置爬虫、提取数据和处理反爬虫机制。
千帆应用开发平台“智能体Pro”全新上线 限时免费体验
面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用
在开始之前,请确保你已经安装了Scrapy框架。如果尚未安装,可以通过以下命令进行安装:
pip install scrapy
首先,创建一个新的Scrapy项目,并进入项目目录:
scrapy startproject DoubanBookSpider
cd DoubanBookSpider
在DoubanBookSpider
目录下,我们需要创建一个新的Spider来定义爬取豆瓣读书的逻辑。在spiders
目录下创建一个名为douban_book.py
的文件,并添加以下代码:
import scrapy
from douban.items import DoubanItem
class DoubanBookSpider(scrapy.Spider):
name = 'douban_book'
start_urls = ['https://book.douban.com/top250'] # 豆瓣读书TOP250列表页
def parse(self, response):
# 提取书籍列表
books = response.css('div.item')
for book in books:
item = DoubanItem()
item['title'] = book.css('div.info > h1.title::text').get() # 提取书名
item['rating'] = book.css('div.bd > div.star > span.rating_num::text').get() # 提取评分
yield item
在上面的代码中,我们定义了一个名为DoubanBookSpider
的Spider,它从豆瓣读书的TOP250列表页开始爬取。在parse
方法中,我们使用CSS选择器提取书籍的标题和评分,并将它们存储在一个名为DoubanItem
的Item对象中。最后,我们使用yield
语句返回该Item对象。
接下来,我们需要定义一个Item对象来存储爬取到的数据。在items.py
文件中添加以下代码:
import scrapy
class DoubanItem(scrapy.Item):
title = scrapy.Field() # 书名
rating = scrapy.Field() # 评分
现在,我们已经完成了Spider的定义和Item对象的创建。接下来,我们需要配置Scrapy以运行我们的爬虫。在settings.py
文件中添加以下配置:
BOT_NAME = 'DoubanBookSpider'
SPIDER_MODULES = ['DoubanBookSpider.spiders']
NEWSPIDER_MODULE = 'DoubanBookSpider.spiders'
现在,我们可以运行我们的爬虫了。在项目根目录下运行以下命令:
scrapy crawl douban_book -o books.csv -t csv
这将启动爬虫并输出结果到一个名为books.csv
的CSV文件中。你可以根据需要修改输出文件的格式和名称。
以上就是使用Scrapy框架爬取豆瓣读书和评分的完整过程。请注意,由于网络环境和反爬虫机制的变化,你可能需要根据实际情况调整代码以适应新的情况。此外,在使用爬虫时应遵守相关法律法规和网站的使用协议,尊重网站的数据和隐私。

发表评论
登录后可评论,请前往 登录 或 注册