아름다운 수프와 스크레이피 크롤러의 차이점은 무엇입니까?
저는 아마존과 이베이 제품 가격을 비교한 웹사이트를 만들고 싶습니다.다음 중 어느 것이 더 잘 작동하며 그 이유는 무엇입니까?나는 뷰티풀 수프는 어느 정도 익숙하지만 스크레이피 크롤러는 잘 모릅니다.
Scrapy는 웹 스파이더 또는 웹 스크레이퍼 프레임워크입니다. Scrapy에게 크롤링을 시작할 루트 URL을 지정한 다음, 크롤링하고 가져올 URL 수 등에 대한 제약 조건을 지정할 수 있습니다.그것은 웹 스크래핑 또는 크롤링을 위한 완벽한 프레임워크입니다.
하는 동안에
BeautifulSoup은 URL에서 컨텐츠를 가져오는 작업을 상당히 잘 수행하는 구문 분석 라이브러리이며, 이 라이브러리를 사용하면 특정 부분을 번거로움 없이 구문 분석할 수 있습니다.지정한 URL의 내용만 가져온 다음 중지됩니다.특정 기준으로 무한 루프 안에 수동으로 넣지 않으면 크롤링되지 않습니다.
간단히 말해서, 아름다운 수프를 사용하면 Scrapy와 비슷한 것을 만들 수 있습니다.아름다운 수프는 도서관인 반면, 스크라피는 완전한 틀입니다.
둘 다 좋은 것 같아요...저는 지금 두 가지를 모두 사용하는 프로젝트를 하고 있습니다.먼저 스크랩을 사용하여 모든 페이지를 스크랩하고 파이프라인을 사용하여 몽고드 컬렉션에 저장하고 페이지에 존재하는 이미지도 다운로드합니다.그 후에 저는 BeautifulSoup4를 사용하여 속성 값을 변경하고 특별한 태그를 받아야 하는 사후 처리를 합니다.
만약 당신이 어떤 페이지의 제품을 원하는지 모른다면, 당신은 그들의 크롤러를 사용하여 명시적인 루프를 만들지 않고 제품을 찾는 모든 아마존/이베이 웹사이트를 실행할 수 있기 때문에 좋은 도구는 스크랩이 될 것입니다.
스크레이피 설명서를 보십시오. 사용하기 매우 간단합니다.
스크레이피 이것은 우리가 오직 기어다니는 논리에만 집중할 수 있도록 스크레이핑을 더 쉽게 만드는 수많은 좋은 것들과 함께 제공되는 웹 스크레이핑 프레임워크입니다.내가 좋아하는 스크레이피가 우리를 돌봐주는 것들은 아래와 같습니다.
- 피드 내보내기:기본적으로 CSV, JSON, jsonline 및 XML과 같은 다양한 형식으로 데이터를 저장할 수 있습니다.
- 비동기 스크래핑: Scrapy는 비차단 방식으로 처리되는 여러 URL을 한 번에 방문할 수 있는 힘을 제공하는 꼬인 프레임워크를 사용합니다(기본적으로 다른 요청을 보내기 전에 요청이 완료될 때까지 기다릴 필요가 없습니다).
- 선택기:이곳은 우리가 스크래피와 아름다운 수프를 비교할 수 있는 곳입니다.Selector는 제목, 클래스 이름을 가진 특정 div 등과 같은 웹 페이지에서 특정 데이터를 선택할 수 있게 해줍니다.Scrapy는 아름다운 수프보다 매우 빠른 구문 분석을 위해 lxml을 사용합니다.
프록시, 사용자 에이전트, 헤더 등을 설정하면 스크레이피를 통해 프록시 및 기타 헤더를 동적으로 설정하고 회전할 수 있습니다.
항목 파이프라인:파이프라인을 통해 추출 후 데이터를 처리할 수 있습니다.예를 들어 mysql 서버에 데이터를 푸시하도록 파이프라인을 구성할 수 있습니다.
쿠키: 스크래피는 자동으로 쿠키를 처리합니다.
기타.
TLDR: 스크래피는 대규모 크롤을 만드는 데 필요한 모든 것을 제공하는 프레임워크입니다.웹을 탐색하는 복잡성을 숨기는 다양한 기능을 제공합니다.설정 부담을 걱정하지 않고 웹 크롤러를 간단히 작성할 수 있습니다.
Beautiful Soup은 HTML 및 XML 문서를 구문 분석하기 위한 Python 패키지입니다.그래서 Beautiful soup으로 당신은 이미 다운로드 된 웹페이지를 분석할 수 있습니다. BS4는 매우 인기있고 오래되었습니다.스크레이피와는 달리당신은 크롤러를 만들기 위해서만 아름다운 수프를 사용할 수 없습니다.당신은 bs4로 크롤러를 만들기 위해 요청, urllib 등과 같은 다른 라이브러리가 필요할 것입니다.다시 말해, 이는 크롤링할 URL 목록을 관리하고, 크롤링하고, 쿠키를 처리하고, 프록시를 관리하고, 오류를 처리하고, CSV, JSON, XML 등에 데이터를 푸시할 수 있는 고유한 함수를 만들어야 한다는 것을 의미합니다.속도를 높이려면 멀티프로세싱과 같은 다른 라이브러리를 사용해야 합니다.
요약하자면.
Scrapy는 판매 없이 크롤러를 쓰기 시작하는 데 사용할 수 있는 풍부한 프레임워크입니다.
아름다운 수프는 웹 페이지를 구문 분석하는 데 사용할 수 있는 라이브러리입니다.그것은 단독으로 거미줄을 긁는 데 사용될 수 없습니다.
당신의 아마존과 이베이 제품 가격 비교 웹사이트에는 반드시 스크레이피를 사용해야 합니다.URL 데이터베이스를 구축하고 매일 크롤러(크론 작업, 크롤러 예약용 셀러리)를 실행하여 데이터베이스의 가격을 업데이트할 수 있습니다.이렇게 하면 웹 사이트가 항상 데이터베이스에서 끌어오고 크롤러와 데이터베이스가 개별 구성요소로 작동합니다.
둘 다 데이터를 구문 분석하는 데 사용합니다.
스크레이피:
- Scrapy는 웹 사이트를 탐색하고 웹 페이지에서 구조화된 데이터를 추출하는 데 사용되는 빠른 고급 웹 크롤링 및 웹 스크래핑 프레임워크입니다.
- 그러나 자바스크립트에서 데이터를 가져오거나 동적으로 로딩할 때는 스플래시, 셀레늄 등의 패키지를 이용하여 극복할 수 있는 한계가 있습니다.
아름다운 수프:
Beautiful Soup은 HTML 및 XML 파일에서 데이터를 꺼내기 위한 Python 라이브러리입니다.
이 패키지를 사용하여 자바 스크립트에서 데이터를 가져오거나 페이지를 동적으로 로드할 수 있습니다.
BeautifulSoup과의 Scrapy는 정적 및 동적 컨텐츠 스크랩을 위해 사용할 수 있는 최고의 조합 중 하나입니다.
제가 하는 방법은 스크래피가 아닌 이베이/아마존 API를 사용한 후 BeautifulSoup을 사용하여 결과를 분석하는 것입니다.
API는 당신에게 당신의 신원을 숨기거나 프록시를 사용하는 등의 걱정 없이 스크레이피 크롤러에서 얻을 수 있는 동일한 데이터를 공식적으로 얻을 수 있는 방법을 제공합니다.
BeautifulSoup은 웹 페이지에서 정보를 추출할 수 있는 라이브러리입니다.
반면에 스크래피는 위와 같은 것들과 데이터를 저장하기 위한 파이프라인과 같은 스크래핑 프로젝트에 필요한 더 많은 것들을 수행하는 프레임워크입니다.
Scrapy https://www.inkoop.io/blog/web-scraping-using-python-and-scrapy/ 를 시작하려면 이 블로그를 확인할 수 있습니다.
Scrapy를 사용하면 수많은 코드를 저장하고 구조화된 프로그래밍을 시작할 수 있습니다. Scrapy의 사전 작성 방법이 마음에 들지 않으면 Scrapy 대신 BeautifulSoup을 사용할 수 있습니다.큰 프로젝트는 두 가지 장점을 모두 가지고 있습니다.
아름다운 수프는 웹스크래핑 작은 도서관입니다.그것은 당신의 일을 하지만 때때로 당신의 요구를 만족시키지 못합니다. 제 말은 만약 당신이 많은 양의 데이터로 웹사이트를 긁어낸다면, 이 경우에 아름다운 수프는 실패합니다.
이 경우 당신이 할 수 있는 완전한 스크래핑 프레임워크인 Scrapy를 사용해야 합니다.또한 Scrapy는 데이터베이스(모든 종류의 데이터베이스)를 지원하므로 다른 웹 스크래핑 라이브러리에 비해 매우 많은 Scrapy입니다.
다양한 차이가 있으며 도구/기술의 선택은 개인의 필요에 따라 달라집니다.
몇 가지 주요 차이점은 다음과 같습니다.
- BeautifulSoup은 Scrapy보다 비교적 배우기 쉽습니다.
- Scrapy는 BeautifulSoup보다 확장, 지원, 커뮤니티가 더 큽니다.
- 아름다운 수프가 파서인 반면, 스크래피는 거미로 간주되어야 합니다.
언급URL : https://stackoverflow.com/questions/19687421/difference-between-beautifulsoup-and-scrapy-crawler
'programing' 카테고리의 다른 글
매트플롯립에게 플롯이 끝났다는 것을 어떻게 알립니까? (0) | 2023.06.07 |
---|---|
JavaScript에서 페이지가 유효한지 확인 - ASP.NET (0) | 2023.06.07 |
변경 내용을 Git 하위 모듈로 되돌리려면 어떻게 해야 합니까? (0) | 2023.06.07 |
AVD Manager - Android 가상 장치를 만들 수 없습니다. (0) | 2023.06.07 |
excel의 vba에서 유니코드 문자열 (0) | 2023.06.07 |