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

Scrapy를 사용하여 Python에서 웹 스크래핑 구현

<시간/>

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

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

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

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

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

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

>>> pip install Scrappy

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

>>> scrappy startproject 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 모듈을 사용하여 웹 크롤러를 구현하는 방법을 배웠습니다.