Ruby를 사용한 웹 스크래핑 – 튜토리얼

게시 됨: 2017-08-24

웹 데이터의 눈에 띄는 증가와 기하급수적인 성장은 다양한 부문에 대한 새로운 길을 열어주었습니다. 제조 단위에서 서비스 부문에 이르기까지 데이터는 전 세계 기업이 진화하는 시대와 관련성을 유지하기 위해 채택하는 필수 구성 요소입니다. 웹 데이터는 경쟁 및 시장에 대한 정보의 금광을 보유할 뿐만 아니라 내부 프로세스 및 운영을 개선하는 데 사용할 수 있는 통찰력을 제공합니다.

웹 스크래핑은 분석 엔진 또는 BI 도구에서 나중에 사용할 수 있도록 대상 온라인 데이터를 추출하는 데 도움이 됩니다. 웹 스크래핑의 목적은 다양합니다.

  • 데이터 추출은 비즈니스를 광고하고 제품/서비스를 홍보하는 효과적인 방법입니다.
  • 사용자, 소비자 및 웹 방문자는 서비스 또는 제품에 대해 원하는 정보를 얻을 수 있습니다.
  • 기업은 각각의 시장 점유율을 높이기 위한 전략과 계획에 대한 경쟁력 있는 정보를 얻을 수 있습니다.
  • 브랜드는 사람들 간의 소셜 미디어 상호 작용을 통해 브랜드에 대한 일반적인 인식을 알 수 있습니다. 이를 통해 마케팅 팀은 이 청중을 위해 특별히 의미 있는 관련 마케팅 메시지를 고안하고 배포하여 전환 가능성을 높일 수 있습니다.
  • 기업은 대상 고객의 요구 사항, 문제점 및 선호도를 보다 명확하게 파악할 수 있습니다. 그런 다음 이 귀중한 인텔리전스를 통해 올바른 방향으로 제품 개발을 추진할 수 있습니다.

웹 데이터를 구조화하고 노이즈를 제거하고 기계가 읽을 수 있는 형식으로 내보낼 수 있다면 이점을 상상해 보십시오. Ruby를 사용하여 이 작업을 수행하는 방법을 살펴보겠습니다.

코딩 스크립트 선택

데이터 추출과 웹 스크래핑 관행의 실제 구현은 쉬운 일이 아닙니다. CSS, HTML 및 올바른 코딩 스크립트에 대한 기본 지식이 있으면 귀하의 여정이 원활해질 것입니다. 코딩 스크립트의 선택은 이러한 맥락에서 중요한 역할을 합니다. Ruby가 시장에서 화제가 되고 있는 이유를 알아보겠습니다.

첫 번째 웹 스크래핑 프로그램을 시작할 계획이라면 Ruby는 안정적인 스크립팅 언어의 역할을 할 수 있습니다. 이 언어의 타의 추종을 불허하는 인기에 대한 몇 가지 이유가 있으며 다음 이유는 그것이 왜 그렇게 효과적인지 이해하는 데 도움이 될 것입니다!

  • 강력한 스크립트 : Ruby-On-Rails는 웹 스크래핑을 위한 매우 강력하고 효과적인 스크립트입니다. 처음 사용하는 사람과 초보자에게 이 특정 언어는 강력한 리소스임이 입증되었습니다.
  • 신뢰할 수 있는 커뮤니티 : Ruby는 신뢰할 수 있고 매우 신뢰할 수 있는 커뮤니티를 형성하는 강력한 개발자 팀과 함께 제공됩니다. 수백만 개의 문서가 있으므로 큰 문제는 없습니다!
  • 쉬운 설치 : 설치 절차가 잘 문서화되어 있고 따라하기 쉽습니다.

이것들은 Ruby를 웹 스크래핑에 없어서는 안될 옵션으로 만드는 몇 가지 요소입니다. 이러한 프로세스는 데이터 추출 프로세스의 실행에 중요하므로 설정 및 설치가 최적으로 수행되어야 합니다. 다음은 프로세스를 진행하는 데 도움이 되는 포괄적인 자습서입니다.

단계별 가이드

시작하기 전에 특정 사항에 대해 명확히 합시다. 이 튜토리얼은 Mac 사용자를 대상으로 하며, 다른 컴퓨터를 사용하는 경우 초기 설정 프로세스가 약간 다를 수 있습니다. 둘째, 프로그램은 웹 페이지를 'Ruby 개체'로 변경하여 웹 스크래핑 프로세스를 단순화할 수 있는 Nokogiri를 사용합니다. 이 두 가지 요소를 염두에 두고 프로젝트를 시작할 수 있습니다.

이 가이드에서는 중고차에 대한 olx의 처음 100개 목록의 헤드라인을 스크랩할 것입니다.

설정 과정

다음은 Ruby를 사용하여 웹 추출을 위한 완전한 설정을 개발하기 위한 기본 요구 사항입니다.

  • 데스크탑이든 노트북이든 컴퓨터에는 Ruby가 있어야 합니다. Mac 충성도라면 절반은 완료된 것입니다.
  • 텍스트 편집기가 필요합니다. 이는 프로그램 명령을 기록하는 데 필요합니다. 컴퓨터에 내장 옵션이 없으면 Sublime Text를 다운로드해 보십시오. 흥미로운 기능과 멋진 컨트롤로 이 텍스트 편집기는 코딩을 흥미롭고 흥미롭게 만듭니다.
  • 또 다른 요구 사항은 HTML 및 CSS 사용에 대한 깊이 있는 지식입니다. 웹 스크래핑 기술을 마스터하려는 경우 CSS 및 HTML에 대한 지식이 중요합니다.
  • Ruby에 대한 지식을 얻으십시오. 이 맥락에서 약간의 정보가 필수적입니다. 일부 온라인 과정을 확인하고 지식 기반을 개선할 수 있습니다. 이러한 프로세스와 요소가 갖추어지면 중요한 단계를 시작할 때입니다.

1단계: 종속성 설치

설치 과정에서 세 가지 유용한 Ruby Gem에 대한 완전한 정보를 얻으십시오. 이 세 가지 옵션은 다음과 같습니다.

  • 노코기리
  • HTTP파티
  • 캐내다

이미 Nokogiri에 대해 약간 설명했으므로 HTTParty와 Pry에 대해 알아보겠습니다. HTTParty는 웹 스크레이퍼가 스크랩하는 페이지에 HTTP 요청을 보내는 데 사용할 보석입니다. HTTParty를 사용하여 페이지의 모든 HTML 콘텐츠를 문자열로 반환하는 GET 요청을 보낼 것입니다. 디버깅을 위해 루비 보석인 Pry를 사용합니다. 웹 페이지의 코드를 구문 분석하는 데 도움이 되며 이 설정의 필수 구성 요소입니다.

아래 명령을 따르고 컴퓨터에서 이 gem을 설치하려면 컴퓨터에서 실행하세요.

보석 설치 노코기리

보석 설치 파티

보석 설치 프라이

2단계: 스크레이퍼 파일 생성

컴퓨터의 원하는 위치에 nokogiri_tutorial이라는 폴더를 만들어야 합니다. 데스크탑은 이를 위한 완벽한 장소입니다. 다음 단계는 'Sublime Text' 또는 원하는 다른 옵션과 같은 텍스트 편집기를 다운로드하고 "web_scraper.RB"라는 이름의 이 폴더에 파일을 저장하는 것입니다. 이 단계를 완료하면 종속성에 대해 작업할 수 있습니다.

3단계: 페이지에 HTTP 요청 보내기

'page'라는 변수 작업을 생성하여 시작하고 스크랩할 페이지의 HTTPParty GET 요청과 동일한지 확인합니다.

이 경우: https://www.olx.in/all-results/q-cars/

그런 다음 "Pry. 시작(제본).” web_scraping.Rb 파일로 표시된 폴더를 탐색하고 찾습니다. 바탕 화면에 바로 저장하고 이 명령을 입력하여 터미널을 엽니다.

cd 데스크탑/nokogiri_tutorial

웹 스크래핑 프로그램을 구현할 준비가 되었습니다. 이 명령을 실행하고 실행할 수 있습니다.

루비 web_scraper.RB

터미널은 Pry로 변환되어야 하며 추가 프로세스를 작업하기 전에 레이아웃을 확인하는 것이 필수적입니다. 다음 단계로 넘어갈 수 있습니다. 그러나 그 전에 선택한 터미널에 'exit'를 입력하고 Pry를 그대로 둔 다음 프로그램 폴더의 원래 위치로 돌아가야 합니다.

4단계: NokoGiri로 이동

여기서 목표는 먼저 이러한 자동차 목록을 NokoGiri 객체로 변환하고 변경하는 것입니다. 이는 구문 분석에 중요하기 때문입니다. 변수 생성이 중요하며 "parse_page"라는 이름으로 새로 개발해야 합니다. Nokogiri에는 HTML 문자열을 Nokogiri 객체로 변환하는 독특한 방법이 있습니다. 코드 맨 아래에 Pry를 남길 수 있습니다.

다음 단계는 Ruby 명령이 포함된 파일을 저장하는 것입니다. Pry가 자동으로 열리고 새로운 변수 "parse_page"가 입력되어야 합니다. 그러면 Olx 페이지가 Nokogiri 개체로 반환됩니다.

계속해서 동일한 폴더에 'cars.html'이라는 이름의 HTML 파일을 만들고 parse_page 명령의 결과를 이 파일에 복사하여 붙여넣습니다. 이 형식의 HTML 데이터는 나중에 참조할 때 유용합니다.

다음 단계를 시작하기 전에 터미널에서 Pry를 종료하십시오.

5단계: 데이터 파싱

데이터 파싱에는 코딩뿐만 아니라 프로그래밍에 대한 기본 지식이 필요합니다. 모든 자동차 목록의 헤드라인 텍스트를 추출하려고 하기 때문에 cars.html 파일이 교차 확인에 유용할 것입니다. 폴더에서 중요한 요소를 찾아 '요소 검사 도구'를 사용하여 검사를 수행하거나 '페이지 소스 코드'를 볼 수도 있습니다.

목록이 클래스 이름이 'content'인 div 내에 있다는 것을 알았기 때문에 다음 명령은 다음과 같습니다.

parse_page.css('.content')

parse_page.css('.content').css('.row').css('.hdrlnk')

자동차_배열

명령을 실행할 때마다 코딩 레이아웃과 배열을 확인하십시오. 구문 분석이 완료되면 데이터 세트를 CSV 파일로 내보내야 합니다.

6단계: 데이터 파일을 CSV로 내보내기

6단계에 도달하면 스크래핑 프로세스를 성공적으로 완료하고 구조화되지 않은 데이터가 구조화된 데이터 세트로 변경되어야 합니다. 이제 터미널로 돌아가자. 터미널이 스크래핑 프로그램과 cars.html 파일이 포함된 nokogiri_tutorial 폴더에 있도록 Pry에 여전히 있는 경우 Pry를 종료합니다. 이제 다음 명령을 입력합니다.

터치 cars.csv

이제 cars_array의 데이터를 저장할 수 있는 빈 CSV 파일이 남게 됩니다. 이제 이 데이터를 새 CSV 파일에 쓰는 간단한 스크립트를 작성할 수 있으며 CSV 파일에 구조화된 자동차 목록 데이터가 있습니다. 이렇게 하면 원할 때 처리하고 조작하기가 더 쉬워집니다.

이별의 생각

이것이 Ruby를 사용하여 웹사이트를 스크랩하는 방법에 대한 대략적인 그림을 제공했을 것입니다. 이제 새로 마스터한 이 기술을 사용하여 더 복잡하고 도전적인 사이트를 탐색하고 크롤링할 때입니다.