찾다
백엔드 개발파이썬 튜토리얼Python 웹 크롤러 요청 라이브러리를 사용하는 방법

1. 웹 크롤러란 무엇인가요?

간단히 말하면 인터넷에서 데이터를 자동으로 다운로드하고 구문 분석하고 정리하는 프로그램을 만드는 것입니다.

웹을 검색할 때와 마찬가지로 다음번에 쉽게 읽고 탐색할 수 있도록 관심 있는 콘텐츠를 노트북에 복사하여 붙여넣습니다. 웹 크롤러는 이러한 콘텐츠를 자동으로 완료하는 데 도움이 됩니다

물론, 어떤 콘텐츠가 발견되면 복사하여 붙여넣을 수 없는 웹사이트 - 웹 크롤러는 더욱 강력한 성능을 발휘할 수 있습니다.

웹 크롤러가 필요한 이유

데이터 분석이 필요한 경우 - 이 데이터는 웹 페이지에 여러 번 저장되므로 수동 다운로드에도 시간이 걸립니다. 이때 이 데이터를 자동으로 크롤링하는 데 도움이 되는 웹 크롤러가 필요합니다(물론 웹 페이지에서 쓸모없는 것들을 필터링합니다)

웹 크롤러 적용

네트워크 액세스 및 수집 데이터는 광범위합니다. 다양한 응용 프로그램 중 다수가 데이터 과학 분야에 속합니다. 다음 예를 살펴보겠습니다.

Taobao 판매자는 고객의 마음을 더욱 사로잡을 수 있도록 대규모 리뷰에서 유용한 긍정적인 정보와 부정적인 정보를 찾아야 합니다. , 고객의 쇼핑 심리를 분석합니다. 일부 학자들은 트위터, 웨이보 및 기타 소셜 미디어에서 정보를 수집하여 데이터 세트를 구축함으로써 우울증과 자살 충동을 식별하는 예측 모델을 구축하여 더 많은 사람들이 도움을 받을 수 있도록 했습니다. 또한 개인 정보 보호 관련 문제도 고려해야 합니다. 하지만 그래도 괜찮지 않습니까?

인공지능 엔지니어로서 Ins에서 자원봉사자의 선호도 사진을 크롤링하여 딥러닝 모델을 훈련하여 주어진 이미지가 자원봉사자가 좋아할 것인지 예측합니다. - 휴대전화 제조업체 이 모델을 사진 앱에 통합하여 푸시 당신에게. 전자상거래 플랫폼의 데이터 과학자들은 사용자가 검색한 상품의 정보를 크롤링하고 분석 및 예측을 수행하여 사용자가 가장 알고 싶어하고 구매하고 싶은 상품을 푸시합니다

예! 웹 크롤러는 고화질 배경화면과 사진을 매일 일괄 크롤링하는 것부터 인공지능, 딥러닝, 비즈니스 전략 수립을 위한 데이터 소스까지 폭넓게 사용되고 있습니다.

이 시대는 데이터의 시대, 데이터는 "새로운 석유"입니다.

2. 네트워크 전송 프로토콜 HTTP

네, 웹 크롤러라면 피할 수 없는 것이 바로 HTTP입니다. 네트워크 엔지니어만큼 자세하게 설명할 필요는 없지만 프로토콜 정의의 모든 측면을 이해할 필요는 있지만, 소개로서 여전히 어느 정도 이해해야 합니다.

국제 표준화 기구 ISO는 개방형 통신 시스템 상호 연결 참조 모델 OSI를 유지하고 있으며, 이 모델은 컴퓨터 통신 구조를 7개의 레이어로 나눕니다.

  1. 물리적 레이어: 이더넷 프로토콜, USB 프로토콜, 블루투스 프로토콜 등 포함

  2. 데이터 링크 레이어: 이더넷 프로토콜 포함

  3. 네트워크 레이어: IP 프로토콜 포함

  4. 전송 레이어: TCP, UDP 프로토콜 포함

  5. 세션 레이어: 세션 열기/닫기 및 관리를 위한 프로토콜 포함

  6. 프레젠테이션 레이어: 형식 보호 및 데이터 변환을 위한 프로토콜 포함

  7. 애플리케이션 레이어: HTTP 및 DNS 네트워크 서비스 프로토콜이 포함되어 있습니다.

이제 HTTP 요청과 응답이 어떤 것인지 살펴보겠습니다(사용자 정의 요청 헤더가 나중에 포함될 것이기 때문입니다). 일반 요청 메시지는 다음 내용으로 구성됩니다.

  • 요청 line

  • 여러 요청 헤더

  • 빈 줄

  • 선택 메시지 본문

특정 요청 메시지:

GET https://www.baidu.com/?tn=80035161_1_dg HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-Hans-CN,zh-Hans;q=0.8,en-GB;q=0.5,en;q=0.3
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362
Accept-Encoding: gzip, deflate, br
Host: www.baidu.com
Connection: Keep-Alive

바이두 접속 시 요청입니다. 물론 알 필요는 없습니다. Python의 요청 패키지가 크롤링을 완료하는 데 도움이 되기 때문에 내부에 많은 세부 정보가 있습니다.

물론 요청에 대해 웹페이지에서 반환된 정보도 볼 수 있습니다.

HTTP/1.1 200 OK //这边的状态码为200表示我们的请求成功
Bdpagetype: 2
Cache-Control: private
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8
Date: Sun, 09 Aug 2020 02:57:00 GMT
Expires: Sun, 09 Aug 2020 02:56:59 GMT
X-Ua-Compatible: IE=Edge,chrome=1
Transfer-Encoding: chunked

3. 요청 라이브러리(이론적 지식을 좋아하지 않는 학생은 올 수 있음) 여기에서 직접)

우리는 Python이 실제로 사전에 있다는 것을 알고 있습니다. HTTP를 처리하기 위한 다른 라이브러리(urllib 및 urllib3)가 있지만 요청 라이브러리가 배우기 더 쉽습니다. 코드가 더 간단하고 이해하기 쉽습니다. 물론 웹 페이지를 성공적으로 크롤링하고 관심 있는 항목을 추출하면 매우 유용한 또 다른 라이브러리인 Beautiful Soup에 대해 언급하겠습니다. 이것은 나중에 이야기입니다

1 요청 라이브러리 설치

여기서 이야기하겠습니다. 설치 요청의 .whl 파일을 직접 찾거나 pip를 사용하여 직접 설치할 수 있습니다(물론 pycharm이 있는 경우 내부 환경 로더에서 직접 다운로드할 수 있습니다)

2. 우리는 공식적으로 웹페이지 크롤링을 시작합니다

코드는 다음과 같습니다:

import requests
target = 'https://www.baidu.com/'
get_url = requests.get(url=target)
print(get_url.status_code)
print(get_url.text)

출력 결과

200 //返回状态码200表示请求成功
<!DOCTYPE html>//这里删除了很多内容,实际上输出的网页信息比这要多得多
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;
charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge>
<meta content=always name=referrer>
<link rel=stylesheet type=text/css 
src=//www.baidu.com/img/gs.gif> 
</p> </div> </div> </div> </body> </html>

위의 다섯 줄의 코드는 이미 웹페이지의 모든 HTML 콘텐츠를 크롤링할 수 있습니다

첫 번째 줄 코드: 요청 라이브러리 로드 두 번째 코드 줄: 크롤링해야 하는 웹사이트 제공 세 번째 코드 줄: 요청을 사용하여 요청을 작성합니다.

对象 = requests.get(url=你想要爬取的网站地址)

네 번째 코드 줄: 요청의 상태 코드를 반환합니다. 코드의 다섯 번째 줄: 해당 콘텐츠 본문을 출력합니다

물론 더 많은 콘텐츠를 인쇄할 수도 있습니다

import requests

target = &#39;https://www.baidu.com/&#39;
get_url = requests.get(url=target)
# print(get_url.status_code)
# print(get_url.text)
print(get_url.reason)//返回状态
print(get_url.headers)
//返回HTTP响应中包含的服务器头的内容(和上面展示的内容差不多)
print(get_url.request)
print(get_url.request.headers)//返回请求中头的内容
OK
{&#39;Cache-Control&#39;: &#39;private, no-cache, no-store, proxy-revalidate, no-transform&#39;, 
&#39;Connection&#39;: &#39;keep-alive&#39;, 
&#39;Content-Encoding&#39;: &#39;gzip&#39;, 
&#39;Content-Type&#39;: &#39;text/html&#39;, 
&#39;Date&#39;: &#39;Sun, 09 Aug 2020 04:14:22 GMT&#39;,
&#39;Last-Modified&#39;: &#39;Mon, 23 Jan 2017 13:23:55 GMT&#39;, 
&#39;Pragma&#39;: &#39;no-cache&#39;, 
&#39;Server&#39;: &#39;bfe/1.0.8.18&#39;, 
&#39;Set-Cookie&#39;: &#39;BDORZ=27315; max-age=86400; domain=.baidu.com; path=/&#39;, &#39;Transfer-Encoding&#39;: &#39;chunked&#39;}
<PreparedRequest [GET]>
{&#39;User-Agent&#39;: &#39;python-requests/2.22.0&#39;, 
&#39;Accept-Encoding&#39;: &#39;gzip, deflate&#39;, 
&#39;Accept&#39;: &#39;*/*&#39;, 
&#39;Connection&#39;: &#39;keep-alive&#39;}

위 내용은 Python 웹 크롤러 요청 라이브러리를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 亿速云에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
2 시간의 파이썬 계획 : 현실적인 접근2 시간의 파이썬 계획 : 현실적인 접근Apr 11, 2025 am 12:04 AM

2 시간 이내에 Python의 기본 프로그래밍 개념과 기술을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우기, 2. 마스터 제어 흐름 (조건부 명세서 및 루프), 3. 기능의 정의 및 사용을 이해하십시오. 4. 간단한 예제 및 코드 스 니펫을 통해 Python 프로그래밍을 신속하게 시작하십시오.

파이썬 : 기본 응용 프로그램 탐색파이썬 : 기본 응용 프로그램 탐색Apr 10, 2025 am 09:41 AM

Python은 웹 개발, 데이터 과학, 기계 학습, 자동화 및 스크립팅 분야에서 널리 사용됩니다. 1) 웹 개발에서 Django 및 Flask 프레임 워크는 개발 프로세스를 단순화합니다. 2) 데이터 과학 및 기계 학습 분야에서 Numpy, Pandas, Scikit-Learn 및 Tensorflow 라이브러리는 강력한 지원을 제공합니다. 3) 자동화 및 스크립팅 측면에서 Python은 자동화 된 테스트 및 시스템 관리와 ​​같은 작업에 적합합니다.

2 시간 안에 얼마나 많은 파이썬을 배울 수 있습니까?2 시간 안에 얼마나 많은 파이썬을 배울 수 있습니까?Apr 09, 2025 pm 04:33 PM

2 시간 이내에 파이썬의 기본 사항을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우십시오. 이를 통해 간단한 파이썬 프로그램 작성을 시작하는 데 도움이됩니다.

10 시간 이내에 프로젝트 및 문제 중심 방법에서 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법?10 시간 이내에 프로젝트 및 문제 중심 방법에서 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법?Apr 02, 2025 am 07:18 AM

10 시간 이내에 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법은 무엇입니까? 컴퓨터 초보자에게 프로그래밍 지식을 가르치는 데 10 시간 밖에 걸리지 않는다면 무엇을 가르치기로 선택 하시겠습니까?

중간 독서를 위해 Fiddler를 사용할 때 브라우저에서 감지되는 것을 피하는 방법은 무엇입니까?중간 독서를 위해 Fiddler를 사용할 때 브라우저에서 감지되는 것을 피하는 방법은 무엇입니까?Apr 02, 2025 am 07:15 AM

Fiddlerevery Where를 사용할 때 Man-in-the-Middle Reading에 Fiddlereverywhere를 사용할 때 감지되는 방법 ...

Python 3.6에 피클 파일을로드 할 때 '__builtin__'모듈을 찾을 수없는 경우 어떻게해야합니까?Python 3.6에 피클 파일을로드 할 때 '__builtin__'모듈을 찾을 수없는 경우 어떻게해야합니까?Apr 02, 2025 am 07:12 AM

Python 3.6에 피클 파일로드 3.6 환경 보고서 오류 : modulenotfounderror : nomodulename ...

경치 좋은 스팟 코멘트 분석에서 Jieba Word 세분화의 정확성을 향상시키는 방법은 무엇입니까?경치 좋은 스팟 코멘트 분석에서 Jieba Word 세분화의 정확성을 향상시키는 방법은 무엇입니까?Apr 02, 2025 am 07:09 AM

경치 좋은 스팟 댓글 분석에서 Jieba Word 세분화 문제를 해결하는 방법은 무엇입니까? 경치가 좋은 스팟 댓글 및 분석을 수행 할 때 종종 Jieba Word 세분화 도구를 사용하여 텍스트를 처리합니다 ...

정규 표현식을 사용하여 첫 번째 닫힌 태그와 정지와 일치하는 방법은 무엇입니까?정규 표현식을 사용하여 첫 번째 닫힌 태그와 정지와 일치하는 방법은 무엇입니까?Apr 02, 2025 am 07:06 AM

정규 표현식을 사용하여 첫 번째 닫힌 태그와 정지와 일치하는 방법은 무엇입니까? HTML 또는 기타 마크 업 언어를 다룰 때는 정규 표현식이 종종 필요합니다.

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 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 영어 버전

SublimeText3 영어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경