파이썬 크롤러 및 응용 프로그램 소개

웹 크롤러란?


웹 스파이더 또는 웹 로봇이라고도 하는 웹 크롤러는 특정 규칙에 따라 웹 페이지 정보를 자동으로 검색하고 검색하는 프로그램 또는 스크립트입니다. 웹 크롤러는 자동으로 웹 페이지를 요청하고 필요한 데이터를 가져올 수 있습니다. 캡처된 데이터를 처리하여 귀중한 정보를 추출할 수 있습니다.
크롤러 알기
우리에게 익숙한 일련의 검색 엔진은 모두 Baidu, Sogou, 360 브라우저, Google 검색 등과 같은 대규모 웹 크롤러입니다. 각 검색 엔진에는 자체 크롤러가 있습니다. 예를 들어 360 브라우저의 크롤러를 360Spider라고 하고 Sogou의 크롤러를 Sogospider라고 합니다.

                                               6acefa0463fc45b49d8430935af0a688.png

 

사실 바이두 검색엔진은 바이두 스파이더라고 하면 더 생생하게 볼 수 있는데, 방대한 인터넷 정보에서 매일 양질의 정보를 크롤링하여 수집한다. 사용자가 Baidu를 통해 키워드를 검색하면 Baidu는 사용자가 입력한 키워드를 먼저 분석한 다음 포함된 웹 페이지에서 관련 웹 페이지를 찾아 순위 규칙에 따라 웹 페이지를 정렬하고 최종적으로 정렬된 결과를 사용자에게 제공합니다. 이 과정에서 바이두 스파이더가 매우 중요한 역할을 했습니다.

Baidu의 엔지니어는 "Baidu Spider"에 해당하는 크롤러 알고리즘을 작성했으며 이러한 알고리즘을 적용하여 "Baidu Spider"는 중복 웹 페이지 필터링, 고품질 웹 페이지 필터링 등과 같은 해당 검색 전략을 구현할 수 있습니다. 다른 알고리즘을 적용하면 크롤러의 효율성과 크롤링 결과가 달라집니다.


파충류 분류


크롤러는 일반 웹 크롤러, 집중 웹 크롤러 및 증분 웹 크롤러의 세 가지 범주로 나눌 수 있습니다.

범용 웹 크롤러: 위에서 소개한 검색 엔진의 중요한 부분이며 여기에서는 반복되지 않습니다. 범용 웹 크롤러는 웹사이트가 크롤링할 수 있는 페이지와 크롤링할 수 없는 페이지를 검색 엔진에 알려주는 로봇 프로토콜을 준수해야 합니다.
로봇 협약: 일종의 '전통적'인 협약으로 법적 효력이 없으며 인터넷 사람들의 '계약 정신'을 반영한다. 업계 종사자들이 의식적으로 협정을 준수할 것이기 때문에 '신사의 협정'이라고도 한다.

집중 웹 크롤러: 특정 요구 사항을 위한 웹 크롤러 프로그램입니다. 일반 크롤러와 다른 점은 집중 크롤러가 웹 크롤링을 구현할 때 웹 페이지의 콘텐츠를 필터링 및 처리하고 요구 사항과 관련된 웹 페이지 정보만 크롤링되도록 시도한다는 것입니다. 웹 크롤러에 집중하면 하드웨어와 네트워크 자원을 크게 절약할 수 있습니다.저장된 페이지 수가 적기 때문에 업데이트 속도가 매우 빠르며 특정 분야의 정보에 대한 특정 그룹의 사람들의 요구를 충족시킵니다.

Incremental 웹 크롤러: 다운로드된 웹 페이지의 점진적 업데이트를 말하며 새로 생성되거나 변경된 웹 페이지만 크롤링하고 크롤링된 페이지가 어느 정도 최신 상태인지 확인할 수 있는 크롤러 프로그램입니다.


크롤러 애플리케이션


인터넷의 급속한 발전으로 World Wide Web은 많은 양의 정보를 전달하는 매체가 되었습니다. 이 정보를 어떻게 효과적으로 추출하고 활용하는가 하는 것이 큰 과제가 되었습니다. 따라서 크롤러가 등장했습니다. 검색엔진 분야뿐 아니라 빅데이터 분석 분야에서도 사용되고 있으며, 상업 분야에서도 대규모로 적용되고 있다.


1) 데이터 분석


데이터 분석 분야에서 웹 크롤러는 일반적으로 방대한 데이터를 수집하는 데 필수적인 도구입니다. 데이터 분석가가 데이터 분석을 하려면 먼저 데이터 소스가 있어야 하고 크롤러를 학습하면 더 많은 데이터 소스를 얻을 수 있습니다. 수집 과정에서 데이터 분석가는 자신의 목적에 따라 더 가치 있는 데이터를 수집하고 잘못된 데이터를 걸러낼 수 있습니다.


2) 상업분야


기업의 경우 적시에 시장 역학 및 제품 정보를 얻는 것이 매우 중요합니다. 기업은 Guiyang Big Data Exchange, Datatang 등과 같은 타사 플랫폼을 통해 데이터를 구매할 수 있습니다. 물론 회사에 크롤러 엔지니어가 있는 경우 크롤러를 통해 원하는 정보를 얻을 수 있습니다.


파충류는 양날의 검


Crawler는 양날의 검이며 우리에게 편리함을 제공하지만 네트워크 보안에 숨겨진 위험도 가져옵니다. 일부 범죄자는 크롤러를 사용하여 인터넷에서 네티즌의 정보를 불법적으로 수집하거나 크롤러를 사용하여 다른 사람의 웹 사이트를 악의적으로 공격하여 웹 사이트 마비의 심각한 결과를 초래합니다. 크롤러의 법적 사용과 관련하여 "중화인민공화국 네트워크 보안법"을 읽을 것을 권장합니다.

                     c35248c26fff4cf68a0baf14066db666.png

 

 

크롤러가 가져오는 위험을 제한하기 위해 대부분의 웹 사이트에는 robots.txt 프로토콜을 통해 자세히 설명된 우수한 크롤링 방지 조치가 있습니다. 다음은 Taobao robots.txt의 내용입니다.

User-agent: Baiduspider 
Disallow: /baidu Disallow: /s? 
Disallow: /ulink? 
Disallow: /link? 
Disallow: /home/news/data/ 
Disallow: /bh
.....
User-agent: * 
Disallow: /


계약 내용에서 알 수 있듯이 Taobao는 크롤링할 수 없는 페이지에 대한 규정을 마련했습니다. 따라서 크롤러를 사용할 때는 로봇 프로토콜을 의식적으로 준수해야 하며, 타인의 정보를 불법적으로 입수하거나 타인의 웹사이트를 위험에 빠뜨리는 행위를 해서는 안 됩니다.


Python을 크롤러로 사용하는 이유


우선, PHP, Java 및 C/C++와 같이 Python을 크롤러로 사용할 수 있을 뿐만 아니라 크롤러 프로그램을 작성하는 데 Python을 사용할 수 있을 뿐만 아니라 Python이 크롤러로 사용하기 가장 쉽다는 점을 분명히 해야 합니다. 장단점을 간단히 비교하면 다음과 같습니다.

PHP: 멀티쓰레딩과 비동기 지원에 별로 좋지 않고 동시 처리 능력이 약하다 자바도 크롤러 프로그램을 작성하는데 자주 사용되지만 자바 언어 자체가 매우 번거롭고 코드량이 많기 때문에 C/C++는 효율적으로 실행되지만 학습 및 개발 비용이 많이 듭니다. 작은 크롤러를 작성하는 데 시간이 오래 걸릴 수 있습니다.

Python 언어는 아름다운 구문, 간결한 코드, 높은 개발 효율성을 가지고 있으며 urllib, 요청, Bs4 등과 같은 여러 크롤러 모듈을 지원합니다. Python의 요청 모듈과 구문 분석 모듈은 풍부하고 성숙하며 크롤러 프로그램을 더 쉽게 작성할 수 있는 강력한 Scrapy 프레임워크도 제공합니다. 따라서 Python을 사용하여 크롤러 프로그램을 작성하는 것은 매우 좋은 선택입니다.


크롤러를 작성하는 과정


크롤러 프로그램은 다른 프로그램과 다르며 사고 논리가 일반적으로 유사하므로 논리에 많은 시간을 할애할 필요가 없습니다. 다음은 Python에서 크롤러 프로그램을 작성하는 과정에 대한 간략한 설명입니다
. 먼저 urllib 모듈의 요청 메서드로 URL을 열어 웹 페이지의 HTML 개체를 가져옵니다.
브라우저를 사용하여 웹 페이지의 소스 코드를 열어 웹 페이지 구조 및 요소 노드를 분석합니다.
Beautiful Soup 또는 정규식을 통해 데이터를 추출합니다.
데이터를 로컬 디스크 또는 데이터베이스에 저장합니다.

물론, 위의 하나의 과정에 한정되는 것은 아니다. 크롤러 프로그램을 작성하려면 좋은 Python 프로그래밍 기술이 필요하므로 작성 과정에서 편리합니다. 크롤러 프로그램은 웹 사이트를 방문하기 위해 가능한 한 기계가 아닌 사람으로 가장해야 하며 그렇지 않으면 웹 사이트의 크롤링 방지 전략에 의해 제한되거나 IP를 직접 차단할 수도 있습니다.관련 지식을 소개합니다. 후속 콘텐츠에서.
참고: 위의 프로세스와 관련된 모듈은 다음 콘텐츠에서 자세히 설명합니다.

 

크롤러가 데이터를 크롤링할 수 있는 이유는 크롤러가 웹 페이지를 분석하고 웹 페이지에서 원하는 데이터를 추출할 수 있기 때문입니다. Python 크롤러 모듈을 배우기 전에 크롤러 프로그램을 작성하는 데 필요한 지식인 웹 페이지의 기본 구조에 익숙해지는 것이 필요합니다.
프론트엔드 언어에 익숙하다면 이 섹션을 쉽게 마스터할 수 있습니다.

웹 페이지는 일반적으로 HTML(Hypertext Markup Language), CSS(Cascading Style Sheets) 및 JavaScript(줄여서 "JS" 동적 스크립팅 언어)의 세 부분으로 구성되며 웹 페이지에서 서로 다른 작업을 수행합니다.


.HTML은 웹 페이지의 내용을 정의하는 역할을 하고
CSS는 웹 페이지의 레이아웃을 설명하는
역할을 하고 JavaScript는 웹 페이지의 동작을 책임집니다.


HTML
HTML은 웹 페이지의 기본 구조로 인체의 골격 구조에 해당합니다. "<" 및 ">" 기호가 있는 모든 웹페이지는 HTML 태그입니다. 일반적인 HTML 태그는 다음과 같습니다.
 

<!DOCTYPE html> 声明为 HTML5 文档
<html>..</html> 是网页的根元素
<head>..</head> 元素包含了文档的元(meta)数据,如 <meta charset="utf-8"> 定义网页编码格式为 utf-8。
<title>..<title> 元素描述了文档的标题
<body>..</body> 表示用户可见的内容
<div>..</div> 表示框架
<p>..</p > 表示段落
<ul>..</ul> 定义无序列表
<ol>..</ol>定义有序列表
<li>..</li>表示列表项
< img src="" alt="">表示图片
<h1>..</h1>表示标题
< a href="">..</ a>表示超链接

시청해주셔서 감사합니다 이해가 안가시면 쪽지 남겨주시면 하나씩 답장드리겠습니다 많은 학생들이 모듈을 잘 몰라서 앞으로 천천히 설명드리겠습니다 최종해석 맞음 이 기사의 저작권은 Zhengyin Studio에 있습니다.               c6489218a77548459ebddcdc5cf5f011.png

 

추천

출처blog.csdn.net/m0_69043821/article/details/124453996