튜토리얼 : Go Spider! Python 및 Scrapy를 사용한 웹 스크랩 핑

(Schwinn Zhang) (2019 년 1 월 19 일)

이미지 소스 : https://myfigurecollection.net/item/736413

아마 “웹 스크래핑”에 대해 들었습니다. 그렇지 않은 경우 웹 스크래핑은 컴퓨터 알고리즘을 사용하여 웹 사이트에서 대상 정보를 가져 오는 것을 의미합니다. 파이썬 라이브러리 Scrapy는이 작업을 위해 정확히 구축되었습니다. 뷰티플 수프는 또 다른 옵션이지만 SLOW입니다. 어쨌든, 소프트웨어 구축, 데이터 과학 또는 크렘린 (윙크)을 위해이 기술을 익히고 싶습니다. 이 주제에 대한 많은 자습서가 있습니다. “어디에서 시작합니까?” “이에 대한 로드맵이 있습니까?” 3 일 동안 좋은 정보, 나쁜 정보, 오래된 정보를 살펴본 후 웹 스크래핑 로드맵을 제공합니다.

시작 위치

제 계획은 다음과 같습니다. 이 목록 의 Python 프로젝트. Twitter Mining 으로 시작하기로 결정했다면 5 일 후에도 Twitter에서 API에 대한 액세스 권한을 부여하기 위해 여전히 Twitter에서 기다리고 있기 때문에 행운을 빕니다. 17 시간 7 분. 따라서 백 로그 경고! 당연히 다음으로 넘어갔습니다. Python (및 MongoDB)으로 웹 사이트 스크랩 . 단순화를 위해 MongoDB를 괄호로 묶었습니다. MongoDB는 많은 시간이 소요되며 작은 프로그램의 경우 필요하지 않습니다. 차라리 전체 파이썬 웹 스크레이퍼가 작동하도록 한 다음 나중에 MongoDB 기능을 추가하고 싶습니다. 시간 관리는 트라이 그를 줄이고 핵심에 도달하는 것을 의미합니다. Software Dev 101. 어쨌든, Python (및 MongoDB)으로 웹 사이트 스크랩 기사를 따르시면 웹 스크래핑이 어떻게 작동하는지에 대한 기본적인 이해를 얻을 수 있습니다.

XPath와 CSS? 저는 CSS를 선택했습니다.

그런 다음 XPath라는 항목, 기본적으로 스카우트 스파이더에게 대상 정보를 나타내는 URL 기반 명령에 매달 렸습니다. 방대한 튜토리얼 탐색 끝에이 깔끔한 음식 게임 는 XPath 작성을 배우고 연습하는 데 도움이됩니다. 여전히 XPath가 두렵다면 튜토리얼 기사에서 언급하지 않은 다른 방법이 있습니다.

From Scrapy의 튜토리얼 문서에서 간단하고 더 간단한 구문을 가진 friend CSS. 실제로 Scrapy 문서는 최고의 튜토리얼입니다. 가장 최신이며 철저한 블로그 자습서가이를 기반으로합니다. 이 튜토리얼에서 필자는 Scrapy의 IPython 셸 (기본적으로 터미널의 Jupyter 노트북)을 통해 웹 정보를 타겟팅하는 가장 좋은 방법을 찾았습니다. 명령 줄에서

scrapy shell [따옴표로 묶인 URL]

을 사용한 다음 quotes.toscrape.com에서 Scrapy 가이드를 따르세요. 삽입 된 CSS 레이어가 거의없는 웹 사이트가 단순하기 때문에 이상적인 예입니다. 몇 라운드 후, 당신은 이미 주니어 스크래핑 닌자입니다. 이 시점에서 저는 New York Times 첫 페이지 의 모든 헤드 라인을 긁어 낼만큼 자신감을 느꼈습니다. 보라, 첫 페이지에는 인상적인 임베딩이 있기 때문에이 시점에서는 불가능한 작업이었습니다. 글쎄요, 첫 페이지는 각 섹션에서 선별 된 기사의 조합 일 뿐이죠? 이 논리에 따라 더 간단한 Op-Ed 섹션과 Art 섹션으로 이동하여 모든 헤드 라인을 성공적으로 긁어 낼 수있었습니다. 다음은 git의 저장소 입니다.

자, 여기 제 첫 거미입니다. 더 많은 기능과 기능을 구축해야합니다. 그러나 지금은 작동합니다. NYT Op-Ed 페이지의 모든 타이틀이 여기에서 json 파일에 저장되었음을 확인할 수 있습니다. 다음은 스크린 샷입니다. 여기에서 중복을 찾을 수 있습니다. 괜찮아. 나중에 중복 탐지기를 만들 수 있습니다. 또한 여러 뉴스 소스에서 스크랩하여 결과를 동일한 파일에 저장할 계획입니다.

NYT OpEdTitles 스크레이퍼 결과. 출처 : Schwinn Zhang

스파이더 알고리즘 요약

다음 단계

  1. 디버그 및 / 또는 스파이더에 기능 추가
  2. 시도 데이터 세트를 긁어냅니다. 다음은 좋은 자습서입니다. Scrapy를 사용하여 자체 데이터 세트 구축 .

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다