찾다
백엔드 개발파이썬 튜토리얼크롤러란 무엇입니까? 크롤러의 기본 프로세스는 무엇입니까?

웹 크롤러는 주로 검색 엔진에 사용되는 프로그램으로, 웹 사이트의 모든 콘텐츠와 링크를 읽고 관련 전체 텍스트 색인을 데이터베이스에 구축한 다음 다른 웹 사이트로 이동합니다.
사람들이 인터넷(예: Google)에서 키워드를 검색할 때 실제로는 사용자에게 일치하는 키워드를 찾기 위해 데이터베이스의 콘텐츠를 비교하는 것입니다. 웹 크롤러 프로그램의 품질에 따라 Google과 같은 검색 엔진의 성능이 결정됩니다. 검색 엔진 웹 크롤러 프로그램이 효율적이고 프로그래밍 구조가 좋기 때문에 바이두보다 확실히 낫습니다.

1. 크롤러란 무엇입니까 

 우선 크롤러에 대해 간단히 이해해 봅시다. 웹사이트를 요청하고 필요한 데이터를 추출하는 과정입니다. 어떻게 오르는지, 어떻게 오르는지에 대해서는 나중에 배우는 내용이 될 것이므로 당장은 들어갈 필요가 없다. 우리 프로그램을 통해 우리를 대신하여 서버에 요청을 보낸 다음 대량의 데이터를 일괄적으로 다운로드할 수 있습니다.

2. 크롤러의 기본 프로세스

  1. 요청 시작: URL을 통해 서버에 요청을 시작하며 요청에는 추가 헤더 정보가 포함될 수 있습니다.

  2. 응답 내용 가져오기: 서버가 정상적으로 응답하면 응답을 받게 됩니다. 응답은 HTML, Json 문자열 또는 바이너리 데이터(동영상, 사진)를 포함할 수 있는 웹페이지의 내용입니다. 기다리다.

  3. 내용 구문 분석: HTML 코드인 경우 웹 페이지 구문 분석기를 사용하여 구문 분석할 수 있습니다. Json 데이터인 경우 구문 분석을 위해 Json 개체로 변환할 수 있습니다. 추가 처리를 위해 파일에 저장됩니다.

  4. 데이터 저장: 로컬 파일이나 데이터베이스(MySQL, Redis, Mongodb 등)에 저장할 수 있습니다.  당 브라우저를 통해 서버에 요청을 보낼 때 어떤 정보가 요청에 포함되어 있습니까? Chrome의 개발자 도구를 통해 설명할 수 있습니다(사용 방법을 모르는 경우 이 문서의 참고 사항을 읽어보세요).

요청 방법: 가장 일반적으로 사용되는 요청 방법에는 요청 가져오기 및 게시 요청이 포함됩니다. 개발 중 가장 일반적인 게시물 요청은 양식을 통해 제출하는 것입니다. 사용자 관점에서 가장 일반적인 것은 로그인 확인입니다. 로그인을 위해 일부 정보를 입력해야 하는 경우 이 요청은 게시물 요청입니다.

url URL(Uniform Resource Locator): URL, 사진, 비디오 등은 모두 URL을 사용하여 정의할 수 있습니다. 웹 페이지를 요청할 때 네트워크 태그를 볼 수 있습니다. 첫 번째 것은 일반적으로 문서입니다. 즉, 이 문서는 외부 이미지, CSS, js 등으로 렌더링되지 않는 HTML 코드입니다. 이 문서 아래에서는 일련의 jpg, js 등을 참조하세요. 이는 html 코드를 기반으로 브라우저에서 계속해서 시작하는 요청이며, 요청 주소는 html 문서에 있는 이미지, js 등의 URL 주소입니다

  1. 요청 헤더: 이 요청의 요청 유형, 쿠키 정보, 브라우저 유형 등을 포함한 요청 헤더입니다. 이 요청 헤더는 웹페이지를 크롤링할 때 여전히 유용합니다. 서버는 요청 헤더를 구문 분석하여 정보를 검토하여 요청이 합법적인 요청인지 확인합니다. 그래서 브라우저를 위장하는 프로그램을 통해 요청할 때 요청 헤더 정보를 설정할 수 있습니다.

  2. 요청 본문: 게시물 요청은 제출을 위해 사용자 정보를 양식 데이터로 패키지합니다. 따라서 가져오기 요청과 비교하여 게시물 요청의 헤더 태그 내용에는 양식과 같은 더 많은 정보 패킷이 포함됩니다. 데이터. get 요청은 단순히 일반 검색 캐리지 리턴으로 이해될 수 있으며 정보는 ? 간격으로 URL 끝에 추가됩니다.

  3.    

    IV. 응답에는 어떤 내용이 포함되나요?
  4. 응답 상태: 헤더의 일반을 통해 상태 코드를 확인할 수 있습니다. 200은 성공을 나타내고, 301은 점프, 404는 웹페이지를 찾을 수 없음, 502는 서버 오류 등을 나타냅니다.

응답 헤더: 콘텐츠 유형, 쿠키 정보 등이 포함됩니다.

  • 응답 본문: 요청의 목적은 HTML 코드, Json 및 바이너리 데이터를 포함한 응답 본문을 가져오는 것입니다.

  •   5. 간단한 요청 데모

        Python의 요청 라이브러리를 통해 웹페이지 요청 만들기:

       

       출력 결과는 아직 렌더링되지 않은 웹 페이지 코드입니다. 즉, 요청 본문 내용입니다. 응답 헤더 정보를 볼 수 있습니다:

      

      상태 코드 보기:

      

       요청 정보에 요청 헤더를 추가할 수도 있습니다:

      

      사진 찍기 (Baidu 로고):

      

     6. JavaScript 렌더링 문제 해결 방법

      Selenium webdriver 사용

      

      print(driver.page_source)를 입력하면 이번에는 코드는 그 이후의 코드를 렌더링하는 것입니다.

    【비고】크롬 브라우저를 사용하여

    • F12를 사용하여 개발자 도구

      

      Elements 태그는 요소 뒤의 HTML 코드를 표시합니다.

    • 네트워크 태그

     

    네트워크 태그 아래에는 브라우저에서 요청한 데이터가 있습니다. 클릭하면 위에서 언급한 요청 헤더, 응답 헤더 등의 자세한 정보를 볼 수 있습니다.

    위 내용은 크롤러란 무엇입니까? 크롤러의 기본 프로세스는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    Python의 병합 목록 : 올바른 메소드 선택Python의 병합 목록 : 올바른 메소드 선택May 14, 2025 am 12:11 AM

    Tomergelistsinpython, youcanusethe operator, extendmethod, listcomprehension, oritertools.chain, 각각은 각각의 지위를 불러 일으킨다

    Python 3에서 두 목록을 연결하는 방법은 무엇입니까?Python 3에서 두 목록을 연결하는 방법은 무엇입니까?May 14, 2025 am 12:09 AM

    Python 3에서는 다양한 방법을 통해 두 개의 목록을 연결할 수 있습니다. 1) 작은 목록에 적합하지만 큰 목록에는 비효율적입니다. 2) 메모리 효율이 높지만 원래 목록을 수정하는 큰 목록에 적합한 확장 방법을 사용합니다. 3) 원래 목록을 수정하지 않고 여러 목록을 병합하는 데 적합한 * 운영자 사용; 4) 메모리 효율이 높은 대형 데이터 세트에 적합한 itertools.chain을 사용하십시오.

    Python은 문자열을 연결합니다Python은 문자열을 연결합니다May 14, 2025 am 12:08 AM

    join () 메소드를 사용하는 것은 Python의 목록에서 문자열을 연결하는 가장 효율적인 방법입니다. 1) join () 메소드를 사용하여 효율적이고 읽기 쉽습니다. 2)주기는 큰 목록에 비효율적으로 운영자를 사용합니다. 3) List Comprehension과 Join ()의 조합은 변환이 필요한 시나리오에 적합합니다. 4) READE () 방법은 다른 유형의 감소에 적합하지만 문자열 연결에 비효율적입니다. 완전한 문장은 끝납니다.

    파이썬 실행, 그게 뭐야?파이썬 실행, 그게 뭐야?May 14, 2025 am 12:06 AM

    pythonexecutionissprocessoftransformingpythoncodeintoExecutableInstructions.1) the -interreadsTheCode, ConvertingItintoByTecode, thethepythonVirtualMachine (pvm)을 실행합니다

    파이썬 : 주요 기능은 무엇입니까?파이썬 : 주요 기능은 무엇입니까?May 14, 2025 am 12:02 AM

    Python의 주요 특징은 다음과 같습니다. 1. 구문은 간결하고 이해하기 쉽고 초보자에게 적합합니다. 2. 개발 속도 향상, 동적 유형 시스템; 3. 여러 작업을 지원하는 풍부한 표준 라이브러리; 4. 광범위한 지원을 제공하는 강력한 지역 사회와 생태계; 5. 스크립팅 및 빠른 프로토 타이핑에 적합한 해석; 6. 다양한 프로그래밍 스타일에 적합한 다중-파라 디그 지원.

    파이썬 : 컴파일러 또는 통역사?파이썬 : 컴파일러 또는 통역사?May 13, 2025 am 12:10 AM

    Python은 해석 된 언어이지만 편집 프로세스도 포함됩니다. 1) 파이썬 코드는 먼저 바이트 코드로 컴파일됩니다. 2) 바이트 코드는 Python Virtual Machine에 의해 해석되고 실행됩니다. 3)이 하이브리드 메커니즘은 파이썬이 유연하고 효율적이지만 완전히 편집 된 언어만큼 빠르지는 않습니다.

    루프 대 루프를위한 파이썬 : 루프시기는 언제 사용해야합니까?루프 대 루프를위한 파이썬 : 루프시기는 언제 사용해야합니까?May 13, 2025 am 12:07 AM

    USEAFORLOOPHENTERATINGOVERASERASERASPECIFICNUMBEROFTIMES; USEAWHILLOOPWHENTINUTIMONDITINISMET.FORLOOPSAREIDEALFORKNOWNSEDINGENCENCENS, WHILEWHILELOOPSSUITSITUATIONS WITHERMINGEDERITERATIONS.

    파이썬 루프 : 가장 일반적인 오류파이썬 루프 : 가장 일반적인 오류May 13, 2025 am 12:07 AM

    Pythonloopscanleadtoerrors likeinfiniteloops, modifyinglistsdizeration, off-by-by-byerrors, zero-indexingissues, andnestedloopineficiencies.toavoidthese : 1) aing'i

    See all articles

    핫 AI 도구

    Undresser.AI Undress

    Undresser.AI Undress

    사실적인 누드 사진을 만들기 위한 AI 기반 앱

    AI Clothes Remover

    AI Clothes Remover

    사진에서 옷을 제거하는 온라인 AI 도구입니다.

    Undress AI Tool

    Undress AI Tool

    무료로 이미지를 벗다

    Clothoff.io

    Clothoff.io

    AI 옷 제거제

    Video Face Swap

    Video Face Swap

    완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

    뜨거운 도구

    Atom Editor Mac 버전 다운로드

    Atom Editor Mac 버전 다운로드

    가장 인기 있는 오픈 소스 편집기

    SublimeText3 영어 버전

    SublimeText3 영어 버전

    권장 사항: Win 버전, 코드 프롬프트 지원!

    스튜디오 13.0.1 보내기

    스튜디오 13.0.1 보내기

    강력한 PHP 통합 개발 환경

    mPDF

    mPDF

    mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

    Dreamweaver Mac版

    Dreamweaver Mac版

    시각적 웹 개발 도구