[Python] Scrapy를 이용한 크롤링 맛보기
한창 크롤링에 관심이 생겨서 Selenium과 BeautifulSoup로 크롤링을 해오다가
Scrapy를 이용해 크롤링을 해보았다.
우선, CLI 환경과 IDE 모두에서 같은 결과의 크롤링이 가능하다는 점이 흥미로웠고
속도나 옵션의 측면에서도 Scrapy가 뛰어났던 것 같다.
Scrapy의 연습을 위해 "quotes.toscrape.com" 사이트를 크롤링해보자.
소스 코드를 통한 Spider 작성
import scrapy class QuotesSpider(scrapy.Spider): name = "quotes" start_urls = [ 'http://quotes.toscrape.com/page/1/', 'http://quotes.toscrape.com/page/2/', ] def parse(self, response): for quote in response.css('div.quote'): yield { 'text': quote.css('span.text::text').get().replace('\u201d','').replace("\u201c",''), 'author': quote.css('small.author::text').get(), 'tags': quote.css('div.tags a.tag::text').getall(), }
이 포스트에서는 정확히 Spider가 무엇인지, Scrapy의 기본 세팅과 환경 설정 방법은 어떻게 하는지는
별도로 서술하지 않고 코드만 같이 보도록 하겠다.
당연하게도, Scrapy를 사용하기 위해 import scrapy
를 해주었고,
start_urls
변수에 내가 크롤링하고 싶은 웹사이트의 주소를 기입하고
해당 데이터를 파싱하는 parse
함수를 정의해주면 끝난다.
quote.css
구문 같은 경우에는 간단하게 설명하자면 css 문법에 따라
해당 HTML 문서의 Elements를 인식하는 그런 함수다.
후에 알게 된 사실이지만, replace
함수를 통해서 유니코드 에러를 제거해주었는데,
그냥 출력 결과물의 인코딩 타입만 바꿔주면 해결되는 문제였다 ^
이상 결과보면서 포스팅 마치도록 하겠다.
- 결과
Author And Source
이 문제에 관하여([Python] Scrapy를 이용한 크롤링 맛보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ssam2s/Python-Scrapy를-이용한-크롤링-맛보기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)