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

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

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

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

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

준비

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

1. Scrapy 설치

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

pip install Scrapy
로그인 후 복사

2. Scrapy 프로젝트 만들기

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

scrapy startproject JDspider
로그인 후 복사

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

3. Spider 만들기

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

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을 정의해야 합니다.

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 데이터를 구문 분석하고 필요한 정보를 추출합니다. 여기서는 제품의 이름, 가격, 주소 및 수량 정보를 얻습니다.

    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 실행을 시작하려면 터미널에 다음 명령을 입력하세요.

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

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

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