Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Scrapy로 웹 스크래핑을 구현하는 Python

<시간/>

이 기사에서는 Python에서 사용할 수 있는 Scrappy 모듈을 사용하는 웹 스크래핑 기술에 대해 알아봅니다.

웹 스크래핑이란 무엇입니까?

웹 스크래핑은 크롤러/스캐너의 도움으로 웹사이트에서 데이터를 얻거나 얻는 데 사용됩니다. 웹 스크래핑은 API 기능을 제공하지 않는 웹 페이지에서 데이터를 추출하는 데 유용합니다. Python에서는 Beautiful Soup, Scrappy 및 lxml과 같은 다양한 모듈을 사용하여 웹 스크래핑을 수행할 수 있습니다.

여기에서는 Scrappy 모듈을 사용한 웹 스크래핑에 대해 설명합니다.

이를 위해서는 먼저 Scrappy를 설치해야 합니다.

터미널 또는 명령 프롬프트에 입력

>>> 핍 설치 스크랩

스크래피로 초기화 명령을 실행하는 데 필요한 프레임워크입니다.

>>> 스크래피 시작 프로젝트 tutpts

여기에서 웹 크롤러를 만듭니다. / 스파이더는 웹사이트에서 데이터를 가져옵니다.

크롤러를 빌드하기 위해 tutptscraw.py라는 별도의 스크립트를 만듭니다. 여기에서 콘텐츠 추출을 위한 클래스를 선언합니다. 여기에서 웹 크롤러의 이름을 지정하고 .requests를 사용하여 주어진 URL에서 데이터를 가져옵니다.

가져온 데이터를 생성하는 생성기 함수가 사용됩니다.

예시

import scrapy
class ExtractUrls(scrapy.Spider):
   name = "fetch"
   # generator Function
   def start_requests(self):
      # enter the URL
      urls = ['https://www.tutorialspoint.com/index.htm/', ]
      for url in urls:
      yield scrapy.Request(url = url, callback = self.parse)

여기서 앵커 태그 내에 캡슐화된 모든 데이터는 요청 기능을 사용하여 가져옵니다. scrappy는 미니 프레임워크이므로 모든 기능을 scrappy 셸에서 실행합니다.

스크랩 셸을 활성화하려면 다음 명령을 사용합니다.

스크래피 쉘https://www.tutorialspoint.com/index.htm/

이제 CSS 또는 xpaths와 같은 선택기를 사용하여 앵커 태그에서 데이터를 가져옵니다.

response.css('a')
links = response.css('a').extract()

웹 페이지에서 사용할 수 있는 모든 링크를 가져오기 위해 parse 메서드를 만듭니다. Scrappy는 이전에 방문한 URL을 내부적으로 우회하여 결과를 표시하는 동안 렌더링 시간을 줄입니다.

import scrapy
class ExtractUrls(scrapy.Spider):
   name = "fetch"
   # generator Function
   def start_requests(self):
      # enter the URL
      urls = ['https://www.tutorialspoint.com/index.htm/', ]
      for url in urls:
      yield scrapy.Request(url = url, callback = self.parse)
   # Parse function
   def parse(self, response):
   title = response.css('title::text').extract_first()
   # Get anchor tags
   links = response.css('a::attr(href)').extract()
   for link in links:
      yield
   {
      'title': title,
      'links': link
   }
   if 'tutorialspoint' in link:
   yield scrapy.Request(url = link, callback = self.parse)

결론

이 튜토리얼에서는 Python에서 Scrappy 모듈을 사용하여 웹 크롤러를 구현하는 방법을 배웠습니다.