> 백엔드 개발 > 파이썬 튜토리얼 > Scrapy를 사용하여 JD 판매자의 제품 데이터를 크롤링하는 방법

Scrapy를 사용하여 JD 판매자의 제품 데이터를 크롤링하는 방법

PHPz
풀어 주다: 2023-06-23 08:01:23
원래의
1838명이 탐색했습니다.

Scrapy를 사용하여 JD 판매자의 제품 데이터를 크롤링하는 방법

Scrapy는 웹 페이지 데이터를 크롤링하는 코드를 쉽고 편리하게 작성할 수 있는 강력한 Python 웹 크롤러 프레임워크입니다. 이 글에서는 Scrapy를 사용하여 JD 판매자의 제품 데이터를 크롤링하는 방법을 소개합니다.

준비

코드 작성을 시작하기 전에 몇 가지 준비를 해야 합니다.

1. Scrapy 설치

Scrapy를 로컬에 설치해야 합니다. 아직 Scrapy를 설치하지 않은 경우 명령줄에 다음 명령을 입력할 수 있습니다.

1

pip install Scrapy

로그인 후 복사

2. Scrapy 프로젝트 만들기

터미널을 열고 다음 명령을 입력하세요:

1

scrapy startproject JDspider

로그인 후 복사

이 명령줄은 현재 폴더에 JDspider라는 Scrapy 프로젝트를 생성합니다.

3. Spider 만들기

Scrapy에서 Spider는 데이터 크롤링의 핵심 구성 요소입니다. JD 가맹점의 상품 데이터를 얻기 위해서는 Spider를 생성해야 합니다. 명령줄에 다음 명령을 입력하세요.

1

2

cd JDspider

scrapy genspider JD jd.com

로그인 후 복사

여기에서는 scrapy genspider 명령을 사용하여 JD라는 스파이더를 생성하고 jd.com을 시작 URL로 사용합니다. 생성된 코드는 JDspider/spiders/JD.py 파일에 있습니다. 이제 크롤러를 완료하려면 이 파일을 편집해야 합니다.

대상 웹사이트 분석

코드를 작성하기 전에 먼저 대상 웹사이트를 분석해야 합니다. https://mall.jd.com/index-1000000127.html을 예로 들어보겠습니다.

Chrome 브라우저를 열고 F12 키를 눌러 개발자 도구를 연 다음 네트워크 탭을 클릭하세요. 대상 웹사이트의 URL을 입력하면 대상 웹사이트의 요청 및 응답 정보를 확인할 수 있습니다.

이에서 AJAX 기술을 사용하여 제품 목록 데이터를 로드한다는 것을 알 수 있습니다. XMLHttpRequest 탭에서 요청의 URL을 볼 수 있으며 JSON 형식으로 데이터가 반환되었습니다.

이 URL에 직접 접속하여 제품 정보를 얻을 수 있습니다.

제품 데이터 가져오기

이제 제품 정보를 가져오는 방법을 알았으므로 Spider에 코드를 추가하여 이 작업을 완료할 수 있습니다.

먼저 JDspider/spiders/JD.py 파일을 열고 Spider 클래스의 정의를 찾으세요. 이 클래스를 수정하고 이름, 도메인 이름 및 초기 URL을 정의해야 합니다.

1

2

3

4

5

6

class JdSpider(scrapy.Spider):

    name = "JD"

    allowed_domains = ["jd.com"]

    start_urls = [

        "https://pro.jd.com/mall/active/3W9j276jGAAFpgx5vds5msKg82gX/index.html"

    ]

로그인 후 복사

데이터 스크랩을 시작하세요. Scrapy에서는 웹페이지 데이터를 얻으려면parse() 메서드를 사용해야 합니다. json 모듈을 사용하여 반환된 JSON 데이터를 구문 분석하고 필요한 정보를 추출합니다. 여기서는 제품의 이름, 가격, 주소 및 수량 정보를 얻습니다.

1

2

3

4

5

6

7

8

9

10

11

12

13

def parse(self, response):

    products = json.loads(response.body)['data']['productList']

    for product in products:

        title = product['name']

        price = product['pricer']

        address = product['storeName']

        count = product['totalSellCount']

        yield {

            'title': title,

            'price': price,

            'address': address,

            'count': count,

        }

로그인 후 복사

이제 데이터 캡처가 완료되었습니다. 이 Spider를 실행하고 결과를 파일로 출력할 수 있습니다. Spider 실행을 시작하려면 터미널에 다음 명령을 입력하세요.

1

scrapy crawl JD -o products.json

로그인 후 복사
  • JD는 우리가 만든 Spider의 이름입니다.
  • -o는 크롤링된 결과를 저장할 위치를 지정하는 출력 옵션입니다. 파일 이름과 결과가 이 파일에 저장됩니다.
  • 이것은 Scrapy를 사용하여 JD 판매자의 제품 데이터를 크롤링하는 방법을 보여주는 간단한 예입니다. 실제 적용에서는 더 복잡한 처리를 수행해야 할 수도 있습니다. Scrapy는 이를 달성하기 위한 많은 강력한 도구와 모듈을 제공합니다.

위 내용은 Scrapy를 사용하여 JD 판매자의 제품 데이터를 크롤링하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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