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

WBOY
풀어 주다: 2023-06-22 10:21:09
원래의
1686명이 탐색했습니다.

인터넷의 발달과 함께 사람들은 정보를 얻기 위해 인터넷에 점점 더 의존하고 있습니다. 책을 좋아하는 사람들에게 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿