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