>  기사  >  백엔드 개발  >  Python 크롤러 스크래피 소개 및 사용

Python 크롤러 스크래피 소개 및 사용

angryTom
angryTom앞으로
2019-11-29 15:56:295216검색

scrapy process

Python 크롤러 스크래피 소개 및 사용

프로세스는 다음과 같이 설명할 수 있습니다.

● 스케줄러는 요청을 보냅니다-->엔진-->미들웨어 다운로드--->Downloader

● 다운로더는 요청을 보냅니다. 응답 받기--->미들웨어 다운로드--->엔진--->크롤러 미들웨어--->Crawler

● 크롤러는 URL 주소를 추출하여 이를 요청 객체로 조합합니다--- -> ;크롤러 미들웨어--->엔진--->스케줄러

● 크롤러는 데이터 추출--->엔진--->파이프라인

●파이프라인은 데이터를 처리하고 저장합니다

추천 학습: Python 비디오 튜토리얼

참고:

그림의 녹색 선은 데이터 전송을 나타냅니다.

그림에서 역할을 결정하는 미들웨어의 위치에 주의하세요

엔진의 위치에 주의하세요. 이전에는 모듈이 서로 독립적이었습니다.

scrapy에서 각 모듈의 구체적인 역할

Python 크롤러 스크래피 소개 및 사용

1. scrapy 프로젝트 구현 프로세스

scrapy 프로젝트 만들기: scrapy start프로젝트 프로젝트 이름

생성 크롤러: scrapy genspider 크롤러 이름 허용 크롤링 범위

데이터 추출: 스파이더 개선, xpath 및 기타 방법 사용

데이터 저장: 파이프라인에 데이터 저장

2. scrapy 프로젝트 만들기

명령: scrapy startproject +< ;프로젝트 이름>

예 :scrapy startproject myspider

생성된 디렉터리 및 파일 결과는 다음과 같습니다.

Python 크롤러 스크래피 소개 및 사용

settings.py의 주요 필드 및 의미

● USER_AGENT Set ua

● ROBOTSTXT_OBEY 준수 여부 robots 프로토콜, 기본값은

● CONCURRENT_REQUEST S 동시 요청 수를 설정합니다. 기본값은 16입니다.

● DOWNLOAD_DELAY 다운로드 지연, 기본적으로 지연 없음

● COOKIES_ENABLED 쿠키 활성화 여부, 즉 각각 요청은 이전 쿠키를 가져오며 기본값은 활성화됩니다.

● DEFAULT_REQUEST_HEADERS 기본 요청 헤더 설정

● SPIDER_MIDDLEWARES 크롤러 미들웨어, 설정 프로세스는 파이프라인과 동일합니다.

● DOWNLOADER_MIDDLEWARES 미들웨어 다운로드

크롤러 생성

명령: scrapy genspider + +

생성된 디렉터리 및 파일 결과는 다음과 같습니다.

Python 크롤러 스크래피 소개 및 사용

스파이더 개선

방법을 통해 스파이더 개선 데이터 추출 및 기타 작업:

Python 크롤러 스크래피 소개 및 사용

참고:

● response.xpath 메서드 반환 결과는 선택기 개체를 포함하는 목록과 유사한 유형이지만 작업은 목록과 동일하지만 몇 가지가 있습니다. 추가 메서드

● extract()는 문자열이 포함된 목록을 반환합니다.

● extract_first()는 목록을 반환합니다. 첫 번째 문자열, 목록은 비어 있고 아무것도 반환되지 않습니다.

● 스파이더의 구문 분석 메서드에는

● URL 주소가 있어야 합니다. 크롤링하려면 allowed_domains에 속해야 하지만 start_urls의 URL 주소에는 이러한 제한이 없습니다

● 크롤러 시작 시작 위치에 주의하면 프로젝트 경로 아래에서 시작됩니다

데이터가 파이프라인으로 전송됩니다

Python 크롤러 스크래피 소개 및 사용

Yield를 사용하는 이유는 무엇인가요?

● 전체 기능을 발전기로 전환하면 어떤 이점이 있나요?

● 이 함수의 반환 값을 순회할 때 데이터를 하나씩 메모리로 읽어오면 순간적인 메모리 사용량이 너무 높아지지 않습니다.

● python3의 범위는 python2의 xrange와 동일합니다

참고:

yield can 전달된 개체는 BaseItem, Request, dict, None

6일 수 있습니다. 파이프라인 개선

Python 크롤러 스크래피 소개 및 사용

Python 크롤러 스크래피 소개 및 사용

파이프라인은 설정에서 여러 파이프라인을 열 수 있습니다. 왜 필요한가요? 여러 파이프라인을 열려면?

● 서로 다른 파이프라인은 서로 다른 크롤러의 데이터를 처리할 수 있습니다.

● 서로 다른 파이프라인은 데이터 정리용, 데이터 저장용 등 서로 다른 데이터 처리 작업을 수행할 수 있습니다.

파이프라인 사용 시 주의 사항

● 사용 필요

전에 설정에서 켜두세요

● 파이프라인 설정의 키는 위치(즉, 프로젝트 내 파이프라인의 위치를 ​​사용자 정의할 수 있음)를 나타내고 값은 엔진과의 거리를 나타냅니다. 데이터가 가까울수록 속도가 빨라집니다.

● 파이프라인이 여러 개 있는 경우 process_item 메서드는 항목을 반환해야 합니다. 그렇지 않으면 후자 파이프라인에서 얻은 데이터는 None 값이 됩니다.

● 파이프라인의 process_item 메서드가 있어야 합니다. 그렇지 않으면 항목을 가져올 수 없습니다. 승인 및 처리됨

● process_item 메소드는 항목과 스파이더를 허용합니다. 여기서 spider는 현재 전달된 항목을 나타냅니다. spider

이 문서는 python tutorial 열에서 가져온 것입니다. 학습을 환영합니다!

위 내용은 Python 크롤러 스크래피 소개 및 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제