백엔드 개발 파이썬 튜토리얼 Scrapy 실행: Douban 영화 데이터 크롤링 및 인기 순위 평가

Scrapy 실행: Douban 영화 데이터 크롤링 및 인기 순위 평가

Jun 22, 2023 pm 01:49 PM
두반 기다 scrapy

Scrapy는 데이터를 빠르고 효율적으로 스크랩하기 위한 오픈 소스 Python 프레임워크입니다. 이 기사에서는 Scrapy를 사용하여 Douban 영화의 데이터를 크롤링하고 인기도를 평가할 것입니다.

  1. 준비

먼저 Scrapy를 설치해야 합니다. 명령줄에 다음 명령을 입력하여 Scrapy를 설치할 수 있습니다.

pip install scrapy
로그인 후 복사

다음으로 Scrapy 프로젝트를 생성하겠습니다. 명령줄에 다음 명령을 입력합니다.

scrapy startproject doubanmovie
로그인 후 복사

이렇게 하면 doubanmovie라는 Scrapy 프로젝트가 생성됩니다. 그런 다음 프로젝트 디렉터리로 이동하여 douban.py라는 Spider를 만듭니다. 명령줄에 다음 명령을 입력하세요:

cd doubanmovie
scrapy genspider douban douban.com
로그인 후 복사

이제 Spider를 사용할 준비가 되었습니다. 다음으로 필요한 데이터를 얻기 위해 거미의 동작을 정의합니다.

  1. 영화 데이터 크롤링

Spider를 사용하여 Douban 영화 데이터를 크롤링하겠습니다. 구체적으로 다음 정보를 얻을 수 있습니다:

  • 영화 이름
  • 감독
  • 배우
  • 장르
  • 국가
  • 언어
  • 출시 날짜
  • 길이
  • 평점
  • 리뷰어 수

오픈두우반 .py 파일에 다음 코드를 추가합니다.

import scrapy

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

    def parse(self, response):
        movie_list = response.xpath('//div[@class="item"]')
        for movie in movie_list:
            yield {
                'name': movie.xpath('.//span[@class="title"]/text()').get(),
                'director': movie.xpath('.//div[@class="bd"]/p/text()[1]').get(),
                'actors': movie.xpath('.//div[@class="bd"]/p/text()[2]').get(),
                'genre': movie.xpath('.//div[@class="bd"]/p/text()[3]').get(),
                'country': movie.xpath('.//div[@class="bd"]/p/text()[4]').get(),
                'language': movie.xpath('.//div[@class="bd"]/p/text()[5]').get(),
                'release_date': movie.xpath('.//div[@class="bd"]/p/text()[6]').get(),
                'duration': movie.xpath('.//div[@class="bd"]/p/text()[7]').get(),
                'rating': movie.xpath('.//span[@class="rating_num"]/text()').get(),
                'num_reviews': movie.xpath('.//div[@class="star"]/span[@class="rating_num"]/text()').get(),
            }
로그인 후 복사

이 코드에서는 XPath를 사용하여 얻어야 하는 정보를 선택합니다. 우리는 Yield를 사용하여 이 정보를 생성하고 이를 사용자에게 반환합니다.

지금 Spider를 실행하면(다음 명령 실행: scrapy Creek douban) 상위 250개 영화에 대한 데이터를 크롤링하여 명령줄로 반환합니다.

  1. 평점 인기 순위 가져오기

이제 상위 250개 영화의 데이터를 성공적으로 가져왔습니다. 다음으로 평점 인기순위를 알아보겠습니다.

Douban 영화 TOP250 목록을 크롤링하려면 먼저 새로운 Spider를 만들어야 합니다. 우리는 이 목록을 사용하여 영화 순위를 얻을 것입니다.

douban.py 파일에 다음 코드를 추가하겠습니다.

import scrapy

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

    def parse(self, response):
        movie_list = response.xpath('//div[@class="item"]')
        for movie in movie_list:
            yield {
                'name': movie.xpath('.//span[@class="title"]/text()').get(),
                'director': movie.xpath('.//div[@class="bd"]/p/text()[1]').get(),
                'actors': movie.xpath('.//div[@class="bd"]/p/text()[2]').get(),
                'genre': movie.xpath('.//div[@class="bd"]/p/text()[3]').get(),
                'country': movie.xpath('.//div[@class="bd"]/p/text()[4]').get(),
                'language': movie.xpath('.//div[@class="bd"]/p/text()[5]').get(),
                'release_date': movie.xpath('.//div[@class="bd"]/p/text()[6]').get(),
                'duration': movie.xpath('.//div[@class="bd"]/p/text()[7]').get(),
                'rating': movie.xpath('.//span[@class="rating_num"]/text()').get(),
                'num_reviews': movie.xpath('.//div[@class="star"]/span[@class="rating_num"]/text()').get(),
            }

        next_page = response.xpath('//span[@class="next"]/a/@href')
        if next_page:
            url = response.urljoin(next_page[0].get())
            yield scrapy.Request(url, callback=self.parse)
로그인 후 복사

코드에서는 next_page라는 변수를 사용하여 마지막 페이지에 도달했는지 확인합니다. 아직 마지막 페이지에 도달하지 않은 경우 계속해서 다음 페이지로 크롤링합니다.

다음으로 영화 순위를 얻으려면 구문 분석 방법을 업데이트해야 합니다. Python의 열거 기능을 사용하여 순위를 각 영화와 연결합니다.

douban.py 파일에서 원래 구문 분석 방법을 다음으로 대체합니다.

def parse(self, response):
        movie_list = response.xpath('//div[@class="item"]')
        for i, movie in enumerate(movie_list):
            yield {
                'rank': i + 1,
                'name': movie.xpath('.//span[@class="title"]/text()').get(),
                'director': movie.xpath('.//div[@class="bd"]/p/text()[1]').get(),
                'actors': movie.xpath('.//div[@class="bd"]/p/text()[2]').get(),
                'genre': movie.xpath('.//div[@class="bd"]/p/text()[3]').get(),
                'country': movie.xpath('.//div[@class="bd"]/p/text()[4]').get(),
                'language': movie.xpath('.//div[@class="bd"]/p/text()[5]').get(),
                'release_date': movie.xpath('.//div[@class="bd"]/p/text()[6]').get(),
                'duration': movie.xpath('.//div[@class="bd"]/p/text()[7]').get(),
                'rating': movie.xpath('.//span[@class="rating_num"]/text()').get(),
                'num_reviews': movie.xpath('.//div[@class="star"]/span[@class="rating_num"]/text()').get(),
            }

        next_page = response.xpath('//span[@class="next"]/a/@href')
        if next_page:
            url = response.urljoin(next_page[0].get())
            yield scrapy.Request(url, callback=self.parse)
로그인 후 복사

이제 Spider를 다시 실행하면 처음 250개 영화에 대한 데이터를 가져와 명령줄에 반환합니다. 이 시점에서 우리는 모든 영화의 순위를 볼 것입니다.

  1. 결론

Scrapy는 데이터를 빠르고 효율적으로 스크랩하는 매우 강력하고 유연한 도구입니다. 이 기사에서는 Scrapy를 사용하여 Douban 영화 데이터를 크롤링하고 인기 순위를 평가하는 데 성공했습니다.

Python 코드와 XPath를 사용하여 웹 페이지의 정보를 선택적으로 얻고 Yield 문을 사용하여 이를 사용자에게 반환합니다. 프로세스 전반에 걸쳐 Scrapy는 대량의 데이터를 관리하고 크롤링하는 간단하고 효과적인 방법을 제공하여 데이터 분석 및 처리를 신속하게 수행할 수 있도록 해줍니다.

위 내용은 Scrapy 실행: Douban 영화 데이터 크롤링 및 인기 순위 평가의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Scrapy는 WeChat 공개 계정 기사의 크롤링 및 분석을 구현합니다. Scrapy는 WeChat 공개 계정 기사의 크롤링 및 분석을 구현합니다. Jun 22, 2023 am 09:41 AM

Scrapy는 WeChat 공개 계정의 기사 크롤링 및 분석을 구현합니다. WeChat은 최근 몇 년 동안 인기 있는 소셜 미디어 애플리케이션이며, 여기서 운영되는 공개 계정도 매우 중요한 역할을 합니다. 우리 모두 알고 있듯이 WeChat 공개 계정은 정보와 지식의 바다입니다. 왜냐하면 각 공개 계정은 기사, 그래픽 메시지 및 기타 정보를 게시할 수 있기 때문입니다. 이 정보는 언론보도, 학술연구 등 다양한 분야에서 폭넓게 활용될 수 있습니다. 그래서 이 글에서는 Scrapy 프레임워크를 사용하여 WeChat 공개 계정 글을 크롤링하고 분석하는 방법을 소개하겠습니다. Scr

New York Times API를 사용한 메타데이터 스크래핑 New York Times API를 사용한 메타데이터 스크래핑 Sep 02, 2023 pm 10:13 PM

소개 지난주에 메타데이터 수집을 위해 웹페이지를 스크래핑하는 방법에 대한 소개를 썼고, 뉴욕타임즈 웹사이트는 스크래핑이 불가능하다고 언급했습니다. New York Times 페이월은 기본 메타데이터 수집 시도를 차단합니다. 하지만 New York Times API를 사용하면 이 문제를 해결할 수 있는 방법이 있습니다. 최근 저는 Yii 플랫폼에 커뮤니티 웹사이트를 구축하기 시작했습니다. 이는 향후 튜토리얼에서 게시할 예정입니다. 사이트 콘텐츠와 관련된 링크를 쉽게 추가하고 싶습니다. 사람들은 양식에 URL을 쉽게 붙여넣을 수 있지만 제목과 출처 정보를 제공하는 데는 시간이 많이 걸립니다. 그래서 오늘의 튜토리얼에서는 New York Times API를 활용하여 New York Times에 링크를 추가할 때 헤드라인을 수집하도록 최근에 작성한 스크래핑 코드를 확장하겠습니다. 기억해, 나도 관련돼 ​​있어

Ajax 기반의 Scrapy 비동기 로딩 구현 방법 Ajax 기반의 Scrapy 비동기 로딩 구현 방법 Jun 22, 2023 pm 11:09 PM

Scrapy는 웹사이트에서 데이터를 빠르고 효율적으로 얻을 수 있는 오픈 소스 Python 크롤러 프레임워크입니다. 그러나 많은 웹사이트는 Ajax 비동기 로딩 기술을 사용하므로 Scrapy가 데이터를 직접 얻는 것이 불가능합니다. 이 기사에서는 Ajax 비동기 로딩을 기반으로 한 Scrapy 구현 방법을 소개합니다. 1. Ajax 비동기 로딩 원리 Ajax 비동기 로딩: 전통적인 페이지 로딩 방법에서는 브라우저가 서버에 요청을 보낸 후 서버가 응답을 반환할 때까지 기다려야 다음 단계로 진행하기 전에 전체 페이지를 로드해야 합니다.

Douban 앱에서 영어 모드를 설정하는 방법 Douban 앱에서 영어 모드를 설정하는 방법 Douban 앱에서 영어 모드를 설정하는 방법 Douban 앱에서 영어 모드를 설정하는 방법 Mar 12, 2024 pm 02:46 PM

Douban 앱에서 영어 모드를 설정하는 방법은 무엇입니까? Douban 앱은 다양한 리소스에 대한 리뷰를 볼 수 있는 소프트웨어입니다. 이 소프트웨어에는 많은 기능이 있습니다. 사용자가 이 소프트웨어를 처음 사용하는 경우 로그인이 필요하며 이 소프트웨어의 기본 언어는 중국어 모드의 경우 일부입니다. 사용자는 영어 모드를 사용하고 싶어하지만 이 소프트웨어에서 영어 모드를 설정하는 방법을 모릅니다. 아래 편집기는 참고용으로 영어 모드 설정 방법을 정리했습니다. Douban 앱에서 영어 모드를 설정하는 방법: 1. 휴대폰에서 "Douban" 앱을 엽니다. 2. "내"를 클릭합니다. 3. 오른쪽 상단에서 "설정"을 선택합니다.

Scrapy 사례 분석: LinkedIn에서 회사 정보를 크롤링하는 방법 Scrapy 사례 분석: LinkedIn에서 회사 정보를 크롤링하는 방법 Jun 23, 2023 am 10:04 AM

Scrapy는 인터넷에서 관련 정보를 빠르고 쉽게 얻을 수 있는 Python 기반 크롤러 프레임워크입니다. 이 기사에서는 Scrapy 사례를 사용하여 LinkedIn에서 회사 정보를 크롤링하는 방법을 자세히 분석합니다. 대상 URL 결정 먼저 대상이 LinkedIn의 회사 정보임을 분명히 해야 합니다. 따라서 LinkedIn 회사 정보 페이지의 URL을 찾아야 합니다. LinkedIn 웹사이트를 열고 검색창에 회사 이름을 입력한 후

PHP 프로젝트에서 API 인터페이스를 호출하여 데이터를 크롤링하고 처리하는 방법은 무엇입니까? PHP 프로젝트에서 API 인터페이스를 호출하여 데이터를 크롤링하고 처리하는 방법은 무엇입니까? Sep 05, 2023 am 08:41 AM

PHP 프로젝트에서 API 인터페이스를 호출하여 데이터를 크롤링하고 처리하는 방법은 무엇입니까? 1. 소개 PHP 프로젝트에서는 종종 다른 웹사이트에서 데이터를 크롤링하고 이러한 데이터를 처리해야 합니다. 많은 웹사이트에서는 API 인터페이스를 제공하며, 우리는 이러한 인터페이스를 호출하여 데이터를 얻을 수 있습니다. 이 기사에서는 PHP를 사용하여 API 인터페이스를 호출하여 데이터를 크롤링하고 처리하는 방법을 소개합니다. 2. API 인터페이스의 URL과 매개변수를 얻으십시오. 시작하기 전에 대상 API 인터페이스의 URL과 필수 매개변수를 얻어야 합니다.

Scrapy 최적화 팁: 중복 URL 크롤링을 줄이고 효율성을 높이는 방법 Scrapy 최적화 팁: 중복 URL 크롤링을 줄이고 효율성을 높이는 방법 Jun 22, 2023 pm 01:57 PM

Scrapy는 인터넷에서 대량의 데이터를 얻는 데 사용할 수 있는 강력한 Python 크롤러 프레임워크입니다. 그러나 Scrapy를 개발할 때 중복된 URL을 크롤링하는 문제에 자주 직면하게 되는데, 이는 많은 시간과 자원을 낭비하고 효율성에 영향을 미칩니다. 이 기사에서는 중복 URL의 크롤링을 줄이고 Scrapy 크롤러의 효율성을 향상시키는 몇 가지 Scrapy 최적화 기술을 소개합니다. 1. Scrapy 크롤러의 start_urls 및 allowed_domains 속성을 사용하여

우주 스릴러 영화 '외계인'이 도우반에서 7.7점을 기록했고, 개봉 하루 만에 박스오피스 1억개를 돌파했다. 우주 스릴러 영화 '외계인'이 도우반에서 7.7점을 기록했고, 개봉 하루 만에 박스오피스 1억개를 돌파했다. Aug 17, 2024 pm 10:50 PM

8월 17일 본 사이트의 소식에 따르면 20세기 픽쳐스의 우주 스릴러 영화 '에일리언: 라스트 쉽(Alien: The Last Ship)'이 어제(16일) 중국 본토에서 개봉됐다고 오늘 도우반 점수가 7.7로 발표됐다. 비콘 프로페셔널 에디션 실시간 데이터에 따르면, 영화는 8월 17일 20시 5분 기준으로 흥행수입 1억개를 넘어섰다. 본 사이트의 시청률 분포는 다음과 같습니다. 별 5개 20.9% 별 4개 49.5% 별 3개 25.4% 별 2개 3.7% 별 1개 0.6% '에이리언: 죽음의 배'가 제작진입니다. 20세기 픽쳐스, '블레이드 러너', '프로메테우스'의 감독 리들리 스콧이 프로듀서를 맡고, 페데 알바레가 감독하고, 페데 알바레와 로도 세이아게스가 각본을 맡았으며, 카드 리 스패니, 이사벨라 머세드, 에일린 우, 스파이크 페이가 참여했다.

See all articles