AutoScraper 및 Flask: 모든 웹사이트에서 5분 이내에 API 생성

이 튜토리얼에서는 외부 API를 사용하지 않고 eBay와 Etsy를 모두 지원하는 자체 전자 상거래 검색 API를 만들 것입니다. AutoScraperFlask 의 기능을 통해 각 사이트에 대해 20줄 미만의 Python 코드로 이 목표를 달성할 수 있습니다. 아직 읽지 않았다면 AutoScraper에 대한 마지막 문서article를 읽는 것이 좋습니다.


요구 사항



pip를 사용하여 필요한 라이브러리를 설치합니다.

pip install -U autoscraper flask

해보자



먼저 eBay의 검색 결과 페이지에서 데이터를 가져오는 스마트 스크레이퍼를 만들 것입니다. 각 항목의 title , priceproduct link 를 얻고 싶다고 가정해 보겠습니다. AutoScraper를 사용하면 몇 가지 샘플 데이터를 제공하기만 하면 쉽게 수행할 수 있습니다.




이 코드를 복사하여 실행하려면 wanted_list를 업데이트해야 할 수 있습니다.



이제 스크래핑 규칙별로 결과를 그룹화해 보겠습니다.



scraper.get_result_similar(url, grouped=True)


출력에서 어떤 규칙이 어떤 데이터에 해당하는지 알 수 있으므로 그에 따라 사용할 수 있습니다. 출력을 기반으로 몇 가지 별칭을 설정하고, 중복 규칙을 제거하고, 나중에 사용할 수 있도록 모델을 저장해 보겠습니다.




<script id="gist-ltag"src="https://gist.github.com/alirezamika/98f53cb72a6cd1f9866c08555356a2ca.js"/>


코드를 실행하면 규칙 ID가 달라집니다.



좋아요. eBay가 있습니다. Etsy 검색 결과에 대한 지원도 추가해 보겠습니다. 스크레이퍼를 만드는 것으로 시작하겠습니다. 이번에는 wanted_dict 대신 wanted_list를 사용합니다. 자동으로 별칭을 설정합니다.




<script id="gist-ltag"src="https://gist.github.com/alirezamika/743234bb98ba1e59e9727ef7788c7da9.js"/>


Etsy에서는 매번 고유한 ID로 링크가 생성되므로 여기에서 링크를 생성할 수 있도록 샘플 제품 ID를 하나 추가했습니다wanted_dict. 또한 Etsy 검색 결과 페이지의 항목 구조가 다르고 스크레이퍼가 모두 학습하기를 원하므로 제목과 가격에 대한 두 가지 샘플을 제공했습니다.



출력을 분석한 후 원하는 규칙을 유지하고 나머지는 제거한 다음 모델을 저장해 보겠습니다.




<script id="gist-ltag"src="https://gist.github.com/alirezamika/45a51ce21740060f9fc638e5e090f14f.js"/>


이제 스크레이퍼가 준비되었으므로 40줄 미만으로 두 사이트에 대해 완벽하게 작동하는 API를 만들 수 있습니다.




<script id="gist-ltag"src="https://gist.github.com/alirezamika/ef540b87a63f12cf6a70ea9e03f23555.js"/>


여기서는 매개변수q를 검색 쿼리로 사용하여 API를 정의하고 있습니다. eBay 및 Etsy 검색 결과를 받아 가입하고 응답으로 반환합니다. 정의된 별칭으로 그룹화된 결과를 얻기 위해 스크레이퍼에 전달group_by_alias=True합니다.



이 코드를 실행하면 API 서버가 포트 8080에서 수신 대기 상태가 됩니다. 브라우저에서 http://localhost:8080/?q=headphone를 열어 API를 테스트해 보겠습니다.




eBay의 일부 결과




Etsy의 일부 결과



짜잔! 전자 상거래 API가 준비되어 있습니다. URL의 headphone를 원하는 검색어로 바꾸면 검색결과를 얻을 수 있습니다.



<시간/>

최종 참고 사항



이 자습서의 최종 코드는 GitHub에서 사용할 수 있습니다.



개발 및 테스트에 적합한 개발 환경입니다. Flask의 내장 서버는 프로덕션에 적합하지 않습니다. 프로덕션 사용에 대해서는 Flask’s deployment options을 확인하십시오.



이 튜토리얼은 개인 및 교육용으로 제작되었습니다. 웹사이트를 스크랩하려면 스크래핑 봇에 대한 정책을 확인할 수 있습니다.



이 기사가 유용하고 그 어느 때보다 빠르게 아이디어를 코드로 구현하는 데 도움이 되기를 바랍니다. 행복한 코딩하세요!

좋은 웹페이지 즐겨찾기