안녕하세요 여러분, 저는 최근에 Python을 배우고 있습니다. 저도 공부하면서 몇 가지 문제를 겪었고, 여기서 배운 내용을 체계적으로 정리하겠습니다. 크롤러 학습에 관심이 있으신 분들은 이 글을 참고하시기 바랍니다. 누구나 자신의 학습 경험을 공유할 수 있습니다.
Python 버전: 2.7, Python 3에 대한 다른 블로그 게시물을 찾아보세요.
먼저 크롤러란 무엇일까요?
웹 크롤러(웹 스파이더, 웹 로봇이라고도 알려져 있으며 FOAF 커뮤니티에서는 웹 체이서로 더 일반적으로 알려져 있음)는 특정 규칙에 따라 World Wide Web의 정보를 자동으로 캡처하는 프로그램 또는 스크립트입니다.
내 경험에 따르면 Python 크롤러를 배우려면 다음 사항을 배워야 합니다.
Python에 대한 기본 지식
Python에서 urllib 및 urllib2 라이브러리 사용
Python 정규 표현식
Python 크롤러 프레임워크 Scrapy
더보기 Python 크롤러의 고급 기능
1. Python의 기본 학습
먼저 Python을 사용하여 크롤러를 작성해야 합니다. 기초, 하하, 그럼 공유하겠습니다. 친구들은 제가 참고한 Python 튜토리얼을 사용할 수 있습니다.
1) MOOC Python Tutorial
예전에 MOOC에서 몇 가지 기본 문법을 읽곤 했는데, 거기에 몇 가지 연습문제가 첨부되어 있어서 연습삼아 사용해도 효과는 꽤 좋은 것 같아요. 조금 아쉽습니다. 내용은 기본적으로 가장 기본입니다. 시작하려면 여기를 클릭하세요
학습 웹사이트: MOOC.com Python 튜토리얼
2) Liao Xuefeng Python 튜토리얼
나중에 Liao 선생님의 Python 튜토리얼을 발견했습니다. , 이는 이해하기 매우 쉽고 느낌이 매우 좋습니다. Python에 대해 더 알고 싶다면 이것을 살펴보십시오.
학습 URL: Liao Xuefeng Python Tutorial
3) Concise Python Tutorial
내가 읽은 또 다른 책이 있는데, Concise Python Tutorial, 그것도 좋은 것 같아요
학습 URL: Concise Python Tutorial
4) Wang Hai's 실험방
저의 학부 연구실 선배님입니다. 제가 시작할 때 그의 기사를 참고했고, 나중에 이 시리즈에는 그의 작업을 바탕으로 내용이 추가되었습니다.
학습 URL: Wang Hai의 연구실
2. Python urllib 및 urllib2 라이브러리 사용
urllib 및 urllib2 라이브러리는 Python 크롤러 학습을 위한 가장 기본적인 라이브러리입니다. 정규식 추출 및 분석을 통해 원하는 결과를 얻을 수 있습니다. 학습 과정에서 이 내용을 여러분과 공유하겠습니다.
3.Python 정규식
Python 정규식은 문자열을 일치시키는 데 사용되는 강력한 무기입니다. 그 디자인 아이디어는 설명적 언어를 사용하여 문자열에 대한 규칙을 정의하는 것입니다. 규칙을 준수하는 모든 문자열은 "일치"되는 것으로 간주됩니다. 이에 대한 내용은 추후 블로그 포스팅을 통해 공유하겠습니다.
4. 크롤러 프레임워크 Scrapy
Python 마스터이고 기본 크롤러 지식을 마스터했다면 제가 선택한 프레임워크는 Scrapy 프레임워크입니다. 이 프레임워크에는 어떤 강력한 기능이 있습니까? 공식 소개는 다음과 같습니다.
HTML, XML 소스 데이터 선택 및 추출에 대한 기본 지원
스파이더 간에 공유되는 일련의 재사용 가능한 필터(예: 항목 로더)를 제공하여 크롤링된 데이터의 지능적인 처리 제공 기본 지원이 있습니다.
피드 내보내기를 통해 다양한 형식(JSON, CSV, XML) 및 여러 스토리지 백엔드(FTP, S3, 로컬 파일 시스템)에 대한 기본 지원을 제공합니다.
크롤링된 데이터(또는 기타 리소스)에서 이미지를 자동으로 다운로드할 수 있는 미디어 파이프라인을 제공합니다. ).
높은 확장성. 신호 및 설계된 API(미들웨어, 확장, 파이프라인)를 사용하여 기능을 사용자 정의하고 구현할 수 있습니다.
내장 미들웨어 및 확장 기능은 다음 기능을 지원합니다:
쿠키 및 세션 처리
HTTP 압축
HTTP 인증
HTTP 캐싱
사용자 에이전트 시뮬레이션
robots.txt
크롤링 깊이 제한
비영어권 언어에 대한 비표준 또는 잘못된 인코딩 선언, 자동 감지 및 강력한 인코딩 지원이 제공됩니다.
템플릿을 기반으로 크롤러 생성을 지원합니다. 크롤러 생성 속도를 높이면서 대규모 프로젝트 전체에서 코드의 일관성을 유지하세요. 자세한 내용은 genspider 명령을 참조하세요.
여러 크롤러에서 성능 평가 및 오류 감지를 위한 확장 가능한 상태 수집 도구를 제공합니다.
XPath 표현식을 테스트하고 크롤러를 작성 및 디버그하는 데 큰 편의를 제공하는 대화형 쉘 터미널을 제공합니다.
프로덕션 환경에서 배포 및 운영을 단순화하는 시스템 서비스를 제공합니다.
내장 웹 서비스를 통해 모니터링 및 제어가 가능합니다. machine
에는 Scrapy 프로세스에서 Python 터미널에 연결하여 크롤러를 보고 디버깅할 수 있는 Telnet 터미널이 내장되어 있습니다.
로깅은 크롤링 프로세스 중에 오류를 잡을 수 있는 편의를 제공합니다.
사이트맵 크롤링을 지원합니다.
캐시된 DNS 확인자
위 내용은 크롤러란 무엇입니까? 크롤러에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!