아마존과 이베이 제품 가격의 비교를 보여주는 웹 사이트를 만들고 싶습니다. 이 중 어느 것이 더 잘 작동하며 왜 그럴까요? 나는 BeautifulSoup에 다소 익숙 하지만 Scrapy 크롤러 에는별로 익숙 하지 않습니다 .
아마존과 이베이 제품 가격의 비교를 보여주는 웹 사이트를 만들고 싶습니다. 이 중 어느 것이 더 잘 작동하며 왜 그럴까요? 나는 BeautifulSoup에 다소 익숙 하지만 Scrapy 크롤러 에는별로 익숙 하지 않습니다 .
답변:
Scrapy 는 웹 스파이더 또는 웹 스크레이퍼 프레임 워크입니다 . Scrapy에 루트 URL을 제공하여 크롤링을 시작한 다음 크롤링 및 페치하려는 URL 수에 제한을 지정할 수 있습니다. 웹 스크래핑 또는 크롤링을 위한 완벽한 프레임 워크입니다 .
동안
BeautifulSoup 은 구문 분석 라이브러리 로 URL에서 내용을 가져 오는 작업을 훌륭하게 수행하며 번거 로움없이 특정 부분을 구문 분석 할 수 있습니다. 사용자가 제공 한 URL의 내용 만 가져 와서 중지합니다. 특정 기준에 따라 무한 루프 안에 수동으로 넣지 않으면 크롤링되지 않습니다.
간단히 말해, Beautiful Soup을 사용하면 Scrapy와 비슷한 것을 만들 수 있습니다. Scrapy는 완전한 프레임 워크 인 반면 Beautiful Soup은 라이브러리 입니다.
둘 다 좋다고 생각합니다. 지금 두 가지를 모두 사용하는 프로젝트를하고 있습니다. 먼저 scrapy를 사용하여 모든 페이지를 스크랩하고 파이프 라인을 사용하여 mongodb 컬렉션에 저장하고 페이지에 존재하는 이미지를 다운로드하십시오. 그 후 BeautifulSoup4를 사용하여 속성 값을 변경하고 특수 태그를 가져와야하는 위치 처리를 만듭니다.
원하는 페이지 제품을 모르는 경우 크롤러를 사용하여 명시 적 for 루프를 만들지 않고 제품을 찾는 모든 Amazon / ebay 웹 사이트를 실행할 수 있으므로 훌륭한 도구가 까다로울 수 있습니다.
복잡한 문서를 살펴보면 사용이 매우 간단합니다.
둘 다 데이터를 구문 분석하는 데 사용하고 있습니다.
Scrapy :
뷰티플 수프 :
Beautiful Soup은 HTML 및 XML 파일에서 데이터를 가져 오기위한 Python 라이브러리입니다.
자바 스크립트에서 데이터를 가져 오거나 동적으로 페이지를로드하기 위해이 패키지를 사용할 수 있습니다.
Scrapy with BeautifulSoup은 정적 및 동적 컨텐츠 스크랩에 사용할 수있는 최고의 콤보 중 하나입니다.
Scrapy 크롤링 로직에만 집중할 수 있도록 스크래핑을보다 쉽게 만들어주는 수많은 도구 가 포함 된 웹 스크래핑 프레임 워크 입니다. scrapy가 내가 좋아하는 것들 중 일부는 다음과 같습니다.
프록시, 사용자 에이전트, 헤더 등 설정 : scrapy를 사용하면 프록시 및 기타 헤더를 동적으로 설정하고 회전 할 수 있습니다.
품목 파이프 라인 : 파이프 라인을 통해 추출 후 데이터를 처리 할 수 있습니다. 예를 들어 데이터를 mysql 서버로 푸시하도록 파이프 라인을 구성 할 수 있습니다.
쿠키 : scrapy는 자동으로 쿠키를 처리합니다.
기타
TLDR : scrapy는 대규모 크롤링을 구축하는 데 필요한 모든 것을 제공하는 프레임 워크입니다. 웹 크롤링의 복잡성을 숨기는 다양한 기능을 제공합니다. 설치 부담에 대한 걱정없이 웹 크롤러 작성을 시작할 수 있습니다.
아름다운 수프 Beautiful Soup은 HTML 및 XML 문서 를 구문 분석 하기위한 Python 패키지입니다. 따라서 아름다운 수프를 사용하면 이미 다운로드 한 웹 페이지를 구문 분석 할 수 있습니다. BS4는 매우 인기 있고 오래되었습니다. scrapy와는 달리 크롤러를 만들기 위해서만 아름다운 수프를 사용할 수 없습니다 . bs4로 크롤러를 만들려면 requests, urllib 등과 같은 다른 라이브러리가 필요합니다. 다시 말해, 크롤링 할 URL 목록을 관리하고, 크롤링하고, 쿠키를 처리하고, 프록시를 관리하고, 오류를 처리하고, CSV, JSON, XML 등으로 데이터를 푸시하는 고유 한 기능을 만들어야합니다. 속도를 높이려면 multiprocessing 과 같은 다른 라이브러리를 사용해야합니다.
요약하자면.
Scrapy는 판매없이 크롤러 작성을 시작하는 데 사용할 수있는 풍부한 프레임 워크입니다.
아름다운 수프는 웹 페이지를 파싱하는 데 사용할 수있는 라이브러리입니다. 웹을 긁기 위해 단독으로 사용할 수 없습니다.
아마존 및 이베이 제품 가격 비교 웹 사이트에는 반드시 scrapy를 사용해야합니다. URL 데이터베이스를 구축하고 매일 크롤러 (크론 작업, 크롤링 예약을위한 셀러리)를 실행하고 데이터베이스의 가격을 업데이트 할 수 있습니다. 이렇게하면 웹 사이트가 항상 데이터베이스에서 가져와 크롤러와 데이터베이스가 개별 구성 요소로 작동합니다.
BeautifulSoup 은 웹 페이지에서 정보를 추출 할 수있는 라이브러리입니다.
반면 에 Scrapy 는 프레임 워크로, 데이터 저장을위한 파이프 라인과 같은 스크래핑 프로젝트에서 위와 같은 작업을 수행 할 수 있습니다.
Scrapy https://www.inkoop.io/blog/web-scraping-using-python-and-scrapy/를 시작하려면이 블로그를 확인할 수 있습니다
차이점은 많으며 도구 / 기술 선택은 개별 요구에 따라 다릅니다.
몇 가지 주요 차이점은 다음과 같습니다.