검색 엔진 스크래핑

Search engine scraping

검색 엔진 스크랩은 Google, Bing, Yahoo, Petal 또는 Sogou같은 검색 엔진에서 URL, 설명 또는 기타 정보를 수집하는 과정입니다.이는 검색 엔진 전용 화면 스크래핑 또는 웹 스크래핑의 특정 형태입니다.

대부분의 대규모 검색 엔진 최적화(SEO) 프로바이더는 검색 엔진, 특히 Google, Petal, Sogou에서 정기적으로 키워드를 스크랩하여 관련 키워드 또는 색인 상태를 고객 웹사이트의 경쟁적 위치를 모니터링합니다.

구글과 같은 검색 엔진은 스크래퍼 사용자가 공식 API를 구매하도록 유도하기 위해 [1]서비스에 대한 자동 접근을 차단하기 위해 다양한 형태의 인간 탐지를 구현했다.

웹사이트에 들어가서 데이터를 자동으로 추출하는 과정을 흔히 "크롤링"이라고도 합니다.Google, Bing, Yahoo, Petal 또는 Sogou와 같은 검색 엔진은 거의 모든 데이터를 자동 크롤링 봇에서 가져옵니다.

애로

구글은 창의적 광고에서 가장 많은 수익과 사용자 수를 가진 가장 큰 검색 엔진이다. 구글은 SEO 관련 [2]회사들에게 가장 중요한 검색 엔진이다.

Google은 스크래핑에 대해 법적 조치를 취하지는 않지만, 스크래핑 툴이 실제로 일반 웹 브라우저를 스푸핑하고 있는 경우에도 결과를 스크래핑하는 것을 어려운 작업으로 만드는 다양한 방어 방법을 사용합니다.

  • 구글은 언어, 국가, 사용자 에이전트, 키워드 또는 검색 파라미터에 따라 달라질 수 있는 복잡한 요청 속도 제한 시스템을 사용하고 있습니다.동작 패턴을 외부 개발자 또는 사용자가 알지 못하기 때문에 자동 검색 엔진에 액세스할 때 환율 제한으로 인해 예측이 불가능해질 수 있습니다.
  • 네트워크 및 IP 제한도 스크래핑 방어 시스템의 일부입니다.검색 엔진은 다른 IP로 변경해도 쉽게 속지 않습니다.프록시를 사용하는 것은 스크래핑에 있어서 매우 중요한 부분입니다.IP의 다양성과 남용 이력도 중요합니다.
  • 위반 IP 및 위반 IP 네트워크를 블랙리스트 데이터베이스에 쉽게 저장하여 위반자를 훨씬 빠르게 탐지할 수 있습니다.대부분의 ISP가 고객에게 다이나믹 IP 주소를 제공하고 있기 때문에, 그러한 자동 금지는, 무고한 유저를 차단하는 것이 아니고, 일시적일 필요가 있습니다.
  • 행동 기반 탐지는 가장 어려운 방어 시스템이다.검색 엔진은 매일 수백만 명의 사용자에게 페이지를 제공하며, 이는 많은 양의 행동 정보를 제공합니다.스크래핑 스크립트 또는 봇은 실제 사용자처럼 동작하지 않습니다.단, 수집되는 키워드가 서로 관련되어 있거나 비정상적인 파라미터가 포함되어 있을 수 있습니다.예를 들어 Google은 매우 정교한 행동 분석 시스템을 가지고 있으며, 아마도 딥 러닝 소프트웨어를 사용하여 비정상적인 액세스 패턴을 탐지할 수 있습니다.그것은 다른 검색 [3]엔진보다 훨씬 더 빨리 특이한 활동을 탐지할 수 있다.
  • HTML 마크업 변경은 웹 사이트의 콘텐츠를 수집하기 위해 사용되는 방법에 따라 HTML 데이터의 작은 변경이라도 업데이트될 때까지 스크래핑 도구를 손상시킬 수 있습니다.
  • 탐지 시스템의 일반적인 변경 사항입니다.지난 몇 년 동안 검색 엔진은 거의 매달 탐지 시스템을 강화하여 개발자들이 정기적으로 [4]코드를 실험하고 수정해야 하기 때문에 신뢰할 수 있는 스크래치를 만드는 것이 점점 더 어려워졌습니다.

검출

검색 엔진 방어가 액세스가 자동화될 수 있다고 생각하는 경우 검색 엔진은 다르게 반응할 수 있습니다.

첫 번째 방어 레이어는 captcha[5] 페이지입니다.이 페이지에서 사용자는 자신이 봇이나 툴이 아닌 실제 사용자임을 확인하도록 요구됩니다.captcha를 해결하면 잠시 동안 검색 엔진에 다시 액세스할 수 있는 쿠키가 생성됩니다.약 하루 후에 captcha 페이지가 다시 삭제됩니다.

두 번째 방어 레이어는 유사한 오류 페이지이지만 captcha를 사용하지 않습니다.이 경우 사용자는 임시 블록이 해제되거나 사용자가 IP를 변경할 때까지 검색 엔진 사용이 완전히 차단됩니다.

세 번째 방어 레이어는 네트워크 세그먼트 전체의 장기 블록입니다.구글은 몇 달 동안 대규모 네트워크 블록을 차단해 왔다.이러한 종류의 블록은 관리자가 트리거한 것으로 보이며 스크래핑툴이 매우 많은 수의 요구를 송신하고 있는 경우에만 발생합니다.

이러한 모든 형식의 검출은, 통상의 유저, 특히 같은 IP 주소 또는 네트워크 클래스(IPv4 범위 및 IPv6 범위)를 공유하는 유저에게도 행해집니다.

Google, Bing, Yahoo, Petal 또는 Sogou 스크랩 방법

검색 엔진을 성공적으로 스크래핑하려면 시간과 양이 두 가지 주요 요인입니다.

사용자가 스크래핑해야 하는 키워드가 많아지고 작업 시간이 짧아질수록 스크래핑이 어려워지며 스크래핑 스크립트 또는 도구를 더욱 개발해야 합니다.

스크래핑 스크립트는 몇 가지 기술적인 [6]문제를 해결해야 합니다.

  • 프록시를 사용한IP 로테이션(프록시는 공유되지 않고 블랙리스트에 나열되지 않아야 함)
  • 적절한 시간 관리, 키워드 변경 간격, 페이지 수 및 올바르게 배치된 지연 효과적인 장기 스크랩 레이트는 시간당 3~5개의 요구(키워드 또는 페이지 수)에서 최대 100개, 사용 중인 각 IP 주소/프록시에 대해 시간당 그 이상까지 다양합니다.IP의 품질, 스크랩 방법, 요청된 키워드 및 요청된 언어/국가에 따라 가능한 최대 환율에 큰 영향을 미칠 수 있습니다.
  • URL 파라미터, 쿠키 및 HTTP 헤더를 올바르게 처리하여 일반적인[7] 브라우저에서 사용자를 에뮬레이트합니다.
  • HTML DOM 해석(HTML 코드에서 URL, 설명, 순위 위치, 사이트 링크 및 기타 관련 데이터 추출)
  • 오류 처리, 캡차 페이지 또는 블록 페이지에 대한 자동 응답 및 기타 비정상적인[8] 응답
  • Captcha[9] 정의는 위에서 설명한 바와 같습니다.

위의 기술을 사용하는 오픈 소스 스크랩 소프트웨어의 예로는 Google [7]Scraper가 있습니다.이 프레임워크는 DevTools Protocol을 통해 브라우저를 제어하며 Google이 브라우저가 자동화되었음을 감지하기 어렵게 합니다.

프로그래밍 언어

검색 엔진용 스크레이퍼를 개발할 때 거의 모든 프로그래밍 언어를 사용할 수 있습니다.다만, 퍼포먼스 요건에 따라서는, 일부의 언어가 유리합니다.

PHP는 강력한 기능(DOM 파서, libcURL)을 내장하고 있기 때문에 웹 사이트나 백엔드 서비스의 스크래핑 스크립트를 작성하기 위해 일반적으로 사용되는 언어이지만, 일반적으로 메모리 사용량은 유사한 C/C++ 코드의 10배입니다.Python뿐만 아니라 Ruby on Rails도 자동화된 스크래핑 작업에 자주 사용됩니다.최고의 성능을 얻으려면 C++ DOM 파서를 고려해야 합니다.

또한 bash 스크립트는 검색 엔진을 스크래핑하기 위한 명령줄 도구로서 cURL과 함께 사용할 수 있습니다.

도구 및 스크립트

검색 엔진 스크레이퍼를 개발할 때 사용, 확장 또는 분석만으로 배울 수 있는 기존의 툴과 라이브러리가 몇 가지 있습니다.

  • iMacros - 무료 브라우저 자동화 툴킷으로 사용자 브라우저에서 매우 작은 볼륨을 스크래핑할 수 있습니다.
  • cURL – 자동화 및 테스트용 명령줄 브라우저 및 다양한 프로그래밍 [11]언어에 사용할 수 있는 강력한 오픈 소스 HTTP 인터랙션 라이브러리.
  • google-search - Google을 스크래핑하기 위한 Go 패키지.[12]
  • SEO 툴 키트– 프록시(socks 4/5, http 프록시)를 사용하여 무료 온라인 툴, Duckgo, Baidu, Petal, Sogou.이 툴에는 비동기 네트워킹 지원이 포함되어 있으며 실제 브라우저를 제어하여 [13]탐지를 줄일 수 있습니다.
  • se-scraper - SEO Tools Kit의 후계자.다른 프록시와 동시에 검색 엔진을 스크래핑합니다.[14]

합법적인

웹 사이트 및 서비스를 스크랩할 때 법률적인 부분은 기업에 큰 문제가 되는 경우가 많습니다.웹 스크랩은 스크랩하는 사용자/회사의 출신국 및 스크랩하는 데이터 또는 웹 사이트에 따라 크게 달라집니다.[15][16][17]세계적으로 많은 다른 법원 판결들이 있다.그러나 검색 엔진을 스크래핑하는 것에 관한 한, 검색 엔진은 보통 다른 웹사이트에서 스크래핑한 정보를 반복하거나 요약하기 때문에 지적 재산을 나열하지 않는다.

검색엔진이 스크랩된 것으로 알려진 [18]가장 큰 사건은 2011년 마이크로소프트가 새로운 빙 서비스를 위해 구글에서 알려지지 않은 키워드를 스크랩했다가 적발됐지만 이 사건조차 법정 소송으로 이어지지 않았다.

한 가지 가능한 이유는 구글, 페탈, 소구 같은 검색엔진이 수백만 개의 공공 도달 가능한 웹사이트를 스크랩함으로써 거의 모든 데이터를 얻을 수 있고, 그 용어들을 읽고 받아들이지 않고 있기 때문일 수 있다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Automated queries – Search Console Help". support.google.com. Retrieved 2017-04-02.
  2. ^ "Google Still World's Most Popular Search Engine By Far, But Share Of Unique Searchers Dips Slightly". searchengineland.com. 11 February 2013.
  3. ^ "Does Google know that I am using Tor Browser?". tor.stackexchange.com.
  4. ^ "Google Groups". google.com.
  5. ^ "My computer is sending automated queries – reCAPTCHA Help". support.google.com. Retrieved 2017-04-02.
  6. ^ "Scraping Google Ranks for Fun and Profit". google-rank-checker.squabbel.com.
  7. ^ a b "Python3 framework GoogleScraper". scrapeulous.
  8. ^ Deniel Iblika (3 January 2018). "De Online Marketing Diensten van DoubleSmart". DoubleSmart (in Dutch). Diensten. Retrieved 16 January 2019.
  9. ^ Jan Janssen (26 September 2019). "Online Marketing Services van SEO SNEL". SEO SNEL (in Dutch). Services. Retrieved 26 September 2019.
  10. ^ "iMacros to extract google results". stackoverflow.com. Retrieved 2017-04-04.
  11. ^ "libcurl - the multiprotocol file transfer library". curl.haxx.se.
  12. ^ "A Go package to scrape Google" – via GitHub.
  13. ^ "Free online SEO Tools (like Google, Yandex, Bing, Duckduckgo, ...). Including asynchronous networking support.: NikolaiT/SEO Tools Kit". 15 January 2019 – via GitHub.
  14. ^ Tschacher, Nikolai (2020-11-17), NikolaiT/se-scraper, retrieved 2020-11-19
  15. ^ "Is Web Scraping Legal?". Icreon (blog).
  16. ^ "Appeals court reverses hacker/troll "weev" conviction and sentence [Updated]". arstechnica.com.
  17. ^ "Can Scraping Non-Infringing Content Become Copyright Infringement... Because Of How Scrapers Work?". www.techdirt.com.
  18. ^ Singel, Ryan. "Google Catches Bing Copying; Microsoft Says 'So What?'". Wired.

외부 링크

  • Scrapy Open source python 프레임워크는 검색 엔진 스크래핑 전용이 아니라 정기적으로 베이스로 사용되며 다수의 사용자와 함께 사용됩니다.
  • Compunect 스크래핑 소스 코드 - 광고 스크래핑과 유기적인 결과 페이지를 스크래핑하기 위해 정기적으로 유지 관리하는 Google 검색 스크래퍼를 포함한 잘 알려진 오픈 소스 PHP 스크래핑 스크립트입니다.
  • 단 하나의 무료 스크랩 스크립트 - Google 스크랩 및 오픈 소스 PHP 스크립트에 대한 정보(2016년 중반 최종 업데이트됨)
  • 스크래핑.서비스 소스 코드 - 타사 스크래핑 API용 Python 및 PHP 오픈 소스 클래스(2017년 1월 업데이트, 비공개 무료)
  • PHP Simpledom HTML 코드를 변수로 해석하는 광범위한 오픈 소스 PHP DOM 파서입니다.
  • 미국에 본사를 둔 SerpApi 서드파티 서비스로 검색 엔진을 합법적으로 스크랩할 수 있습니다.