Scrapy爬虫框架实践:使用CSS选择器

Scrapy爬虫框架实践:使用CSS选择器

Scrapy爬虫框架实践:使用CSS选择器

什么是Scrapy爬虫框架

Scrapy是一个强大的Python爬虫框架,可以帮助开发者快速高效地编写爬虫程序,并且提供了很多方便的工具和功能。Scrapy框架中包含了多个模块,其中包括引擎(Engine)、调度器(Scheduler)、下载器(Downloader)、爬虫(Spider)以及项目管道(Pipeline)等等。在Scrapy的体系结构中,爬虫(Spider)是最核心的部分,它负责解析网页并提取所需的信息。

CSS选择器介绍

在Scrapy框架中,我们通常使用CSS选择器来定位和提取网页中的数据。CSS选择器是一种用来选择HTML元素的语法,它可以通过标签名、类名、ID、属性等多种方式来定位元素。在Scrapy中,我们可以通过CSS选择器将网页中的数据提取出来,并存储到我们的数据库或者文件中。

使用CSS选择器提取数据

假设我们现在要提取示例网站中的新闻标题和链接,我们可以使用Scrapy框架和CSS选择器来实现。首先我们需要创建一个名为NewsSpider的爬虫类,在其中定义我们需要爬取的网站和提取规则。

import scrapy

class NewsSpider(scrapy.Spider):
    name = 'news'
    start_urls = ['http://example.com']

    def parse(self, response):
        news_titles = response.css('h2.news-title::text').extract()
        news_links = response.css('a.news-link::attr(href)').extract()

        for title, link in zip(news_titles, news_links):
            yield {
                'title': title,
                'link': link
            }

在上面的代码中,我们首先定义了一个名为NewsSpider的爬虫类,然后指定了需要爬取的网站地址http://example.com。接着,在parse方法中使用了CSS选择器response.css来提取新闻标题和链接,然后将提取的数据以字典的形式返回。最后通过yield关键字将数据输出。

运行爬虫程序

为了运行我们的爬虫程序,我们需要在命令行中执行以下指令:

scrapy runspider NewsSpider.py -o news.csv

以上指令会执行我们的爬虫程序NewsSpider.py,并将提取到的数据保存到news.csv文件中。

实战案例:提取豆瓣电影排行榜数据

现在让我们来看一个实际的案例,我们要使用Scrapy框架和CSS选择器来提取豆瓣电影排行榜中的电影名称和评分。

首先,我们需要创建一个名为DoubanMovieSpider的爬虫类,并定义我们需要爬取的网站和提取规则。

import scrapy

class DoubanMovieSpider(scrapy.Spider):
    name = 'douban_movie'
    start_urls = ['https://movie.douban.com/top250']

    def parse(self, response):
        movies = response.css('div.item')

        for movie in movies:
            title = movie.css('span.title::text').extract_first()
            rating = movie.css('span.rating_num::text').extract_first()

            yield {
                'title': title,
                'rating': rating
            }

在上面的代码中,我们定义了一个名为DoubanMovieSpider的爬虫类,并指定了需要爬取的豆瓣电影排行榜网址https://movie.douban.com/top250。在parse方法中使用CSS选择器提取电影名称和评分,然后将数据以字典的形式返回。

为了运行我们的爬虫程序,我们同样需要在命令行中执行以下指令:

scrapy runspider DoubanMovieSpider.py -o douban_movies.csv

以上指令会执行我们的爬虫程序DoubanMovieSpider.py,并将提取到的数据保存到douban_movies.csv文件中。

总结

通过本文的介绍,我们了解了Scrapy爬虫框架以及CSS选择器的基本用法。CSS选择器是一个强大的定位元素的工具,在爬虫程序中起着非常重要的作用。通过合理地运用CSS选择器,我们能够快速准确地提取网页中的信息,并实现我们爬虫程序的功能。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程