>  기사  >  백엔드 개발  >  Scrapy를 사용하여 Douban 도서와 평점 및 댓글을 크롤링하는 방법은 무엇입니까?

Scrapy를 사용하여 Douban 도서와 평점 및 댓글을 크롤링하는 방법은 무엇입니까?

WBOY
WBOY원래의
2023-06-22 10:21:091680검색

인터넷의 발달과 함께 사람들은 정보를 얻기 위해 인터넷에 점점 더 의존하고 있습니다. 책을 좋아하는 사람들에게 Douban Books는 없어서는 안 될 플랫폼이 되었습니다. 또한, Douban Books는 풍부한 도서 평점과 리뷰를 제공하여 독자들이 책을 보다 포괄적으로 이해할 수 있도록 해줍니다. 그러나 이 정보를 수동으로 얻는 것은 건초 더미에서 바늘을 찾는 것과 같습니다. 이때 Scrapy 도구를 사용하여 데이터를 크롤링할 수 있습니다.

Scrapy는 Python 기반의 오픈 소스 웹 크롤러 프레임워크로, 웹 사이트에서 데이터를 효율적으로 추출하는 데 도움이 됩니다. 이 기사에서는 단계에 중점을 두고 Scrapy를 사용하여 Douban 도서를 크롤링하는 방법과 평점 및 댓글을 자세히 소개합니다.

1단계: Scrapy 설치

먼저 컴퓨터에 Scrapy를 설치해야 합니다. pip(Python 패키지 관리 도구)를 설치한 경우 터미널이나 명령줄에 다음 명령만 입력하면 됩니다.

pip install scrapy

이렇게 하면 Scrapy가 컴퓨터에 설치됩니다. 오류나 경고가 발생하는 경우 프롬프트에 따라 적절하게 조정하는 것이 좋습니다.

2단계: 새 Scrapy 프로젝트 만들기

다음으로 터미널이나 명령줄에 다음 명령을 입력하여 새 Scrapy 프로젝트를 만들어야 합니다.

scrapy startproject douban

이 명령은 현재 디렉터리에 douban이라는 폴더를 만듭니다. 여기에는 Scrapy의 기본 파일 및 디렉터리 구조가 포함되어 있습니다.

3단계: 크롤러 프로그램 작성

Scrapy에서는 웹사이트에서 데이터를 추출하는 방법을 Scrapy에게 알려주는 크롤러 프로그램을 작성해야 합니다. 따라서 douban_spider.py라는 새 파일을 만들고 다음 코드를 작성해야 합니다. douban_spider.py 的文件,并编写如下代码:

import scrapy

class DoubanSpider(scrapy.Spider):
    name = 'douban'
    allowed_domains = ['book.douban.com']
    start_urls = ['https://book.douban.com/top250']

    def parse(self, response):
        selector = scrapy.Selector(response)
        books = selector.xpath('//tr[@class="item"]')
        for book in books:
            title = book.xpath('td[2]/div[1]/a/@title').extract_first()
            author = book.xpath('td[2]/div[1]/span[1]/text()').extract_first()
            score = book.xpath('td[2]/div[2]/span[@class="rating_nums"]/text()').extract_first()
            comment_count = book.xpath('td[2]/div[2]/span[@class="pl"]/text()').extract_first()
            comment_count = comment_count.strip('()')
            yield {'title': title, 'author': author, 'score': score, 'comment_count': comment_count}

上面的代码实现了两个功能:

  1. 爬取豆瓣图书 top250 页面中的书籍标题、作者、评分和评论数。
  2. 将爬取到的数据以字典的形式返回。

在这个程序中,我们首先需要定义一个 DoubanSpider 类,并指定爬虫的名称、允许爬虫访问的域名和起始 URL。在 parse 方法中,我们通过 scrapy.Selector 对象进行 HTML 页面解析,并使用 XPath 表达式获取书籍的相关信息。

获取数据后,我们使用 yield 关键字将数据以字典的形式返回。这里的 yield 关键字的作用是将函数变成一个生成器,实现一次返回一个数据的效果。在 Scrapy 中,我们可以通过定义生成器的方式,实现对网站数据的高效抓取。

第四步:运行爬虫程序

在编写完爬虫程序后,我们需要在终端或命令行中运行以下代码来启动爬虫程序:

scrapy crawl douban -o result.json

这个指令的作用是启动名为 doubanrrreee

위 코드는 두 가지 기능을 구현합니다.

  1. 상위 250권의 Douban 도서 크롤링 Book 페이지의 제목, 작성자, 평점 및 리뷰 수입니다.
  2. 크롤링된 데이터를 사전 형태로 반환합니다.
이 프로그램에서는 먼저 DoubanSpider 클래스를 정의하고 크롤러 이름, 도메인 이름 및 크롤러가 액세스할 수 있는 시작 URL을 지정해야 합니다. parse 메소드에서는 scrapy.Selector 객체를 통해 HTML 페이지를 구문 분석하고 XPath 표현식을 사용하여 책에 대한 관련 정보를 얻습니다.

데이터를 얻은 후 yield 키워드를 사용하여 사전 형태로 데이터를 반환합니다. 여기서 yield 키워드는 함수를 생성기로 전환하여 한 번에 하나의 데이터를 반환하는 효과를 얻는 데 사용됩니다. Scrapy에서는 생성기를 정의하여 웹사이트 데이터를 효율적으로 크롤링할 수 있습니다. 🎜🎜4단계: 크롤러 프로그램 실행🎜🎜크롤러 프로그램을 작성한 후 크롤러 프로그램을 시작하려면 터미널이나 명령줄에서 다음 코드를 실행해야 합니다. 🎜rrreee🎜이 명령의 기능은 크롤러 프로그램을 시작하는 것입니다. douban이라는 이름을 지정하고 크롤링된 데이터를 JSON 형식으로 result.json 파일에 출력합니다. 🎜🎜위의 4단계를 통해 Douban 도서와 평점, 리뷰 정보를 성공적으로 크롤링할 수 있습니다. 물론, 크롤러 프로그램의 효율성과 안정성을 더욱 향상시켜야 한다면 몇 가지 다른 최적화 및 조정도 필요합니다. 예: 지연 시간 설정, 크롤링 방지 메커니즘 방지 등 🎜🎜간단히 말하면 Scrapy를 사용하여 Douban 도서와 해당 도서의 평가 및 리뷰 정보를 크롤링하는 것은 비교적 간단하고 흥미로운 작업입니다. 데이터 크롤링과 Python 프로그래밍에 관심이 있다면 다른 웹사이트에서 데이터 크롤링을 추가로 시도하여 프로그래밍 기술을 향상시킬 수 있습니다. 🎜

위 내용은 Scrapy를 사용하여 Douban 도서와 평점 및 댓글을 크롤링하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.