백엔드 개발 파이썬 튜토리얼 Python3이 요청 모듈을 사용하여 페이지 콘텐츠를 크롤링하는 방법에 대한 자세한 예

Python3이 요청 모듈을 사용하여 페이지 콘텐츠를 크롤링하는 방법에 대한 자세한 예

Sep 25, 2017 am 11:23 AM
python3 requests 기준 치수

이 글은 주로 python3을 사용하여 요청 모듈을 사용하여 페이지 콘텐츠를 크롤링하는 실제 사례를 소개합니다. 관심 있는 사람은 이에 대해 알아볼 수 있습니다.

1. 내 개인 데스크톱 시스템에 pip

linuxmint를 설치하세요. 시스템은 기본적으로 pip를 설치하지 않습니다. 나중에 요청 모듈을 설치하는 데 pip가 사용된다는 점을 고려하면 여기서 첫 번째 단계는 pip를 설치하는 것입니다.


$ sudo apt install python-pip
로그인 후 복사

설치가 성공했습니다. PIP 버전을 확인하세요.


$ pip -V
로그인 후 복사

2 요청 모듈을 설치합니다.

여기에서 pip를 통해 설치했습니다.


$ pip install requests
로그인 후 복사

가져오기 실행 요청, 오류가 없다면 설치가 성공한 것입니다!

설치 성공 여부 확인

3. beautifulsoup4 설치

Beautiful Soup은 HTML 또는 XML 파일에서 데이터를 추출할 수 있는 Python 라이브러리입니다. 이는 관례적인 문서 탐색을 가능하게 하며 즐겨 사용하는 변환기를 통해 문서를 찾고 수정하는 방법을 제공합니다. Beautiful Soup을 사용하면 몇 시간, 심지어 며칠의 작업 시간을 절약할 수 있습니다.


$ sudo apt-get install python3-bs4
로그인 후 복사

참고: 여기서는 python3 설치 방법을 사용하고 있습니다. python2를 사용하는 경우 다음 명령을 사용하여 설치할 수 있습니다.


$ sudo pip install beautifulsoup4
로그인 후 복사

4.요청 모듈에 대한 간략한 분석

1) 요청 보내기

우선 먼저 요청 모듈을 가져와야 합니다.


>>> import requests
로그인 후 복사

그런 다음 get 대상 크롤링 웹페이지. 여기서는 다음을 예로 들어 보겠습니다.


>>> r = requests.get('http://www.jb51.net/article/124421.htm')
로그인 후 복사

여기서 r이라는 응답 개체가 반환됩니다. 우리는 이 객체로부터 원하는 모든 정보를 얻을 수 있습니다. get here는 http의 응답 방식이므로 비유적으로 put, delete, post, head로 대체할 수도 있습니다.

2) URL 매개변수 전달

때때로 URL의 쿼리 문자열에 대한 일종의 데이터를 전달하고 싶을 때가 있습니다. URL을 직접 작성하는 경우 데이터는 키/값 쌍으로 URL에 배치되고 그 뒤에 물음표가 표시됩니다. 예를 들어 cnblogs.com/get?key=val입니다. 요청을 통해 params 키워드 인수를 사용하여 이러한 매개변수를 문자열 사전으로 제공할 수 있습니다.

예를 들어, Google에서 "python 크롤러"라는 키워드를 검색할 때 newwindow(새 창 열기), q 및 oq(검색 키워드)와 같은 매개변수를 URL에 수동으로 구성할 수 있으며 다음 코드를 사용할 수 있습니다.


>>> payload = {'newwindow': '1', 'q': 'python爬虫', 'oq': 'python爬虫'}

>>> r = requests.get("https://www.google.com/search", params=payload)
로그인 후 복사

3) 응답 내용

r.text 또는 r.content를 통해 페이지 응답 내용을 가져옵니다.


>>> import requests

>>> r = requests.get('https://github.com/timeline.json')

>>> r.text
로그인 후 복사

요청은 서버의 콘텐츠를 자동으로 디코딩합니다. 대부분의 유니코드 문자 집합은 원활하게 디코딩될 수 있습니다. r.text와 r.content의 차이점에 대해 간단히 설명하면 다음과 같습니다.

resp.text는 유니코드 데이터를 반환합니다.

resp.content는 바이너리 데이터인 바이트 유형을 반환합니다. 텍스트를 얻으려면 r.text를 사용하면 됩니다. 사진이나 파일을 얻으려면 r.content를 사용하면 됩니다.

4) 웹 페이지 인코딩 가져오기

>>> r = requests.get('http://www.cnblogs.com/')

>>> r.encoding

'utf-8'
로그인 후 복사

5) 응답 상태 코드 가져오기

응답 상태 코드를 감지할 수 있습니다:

>>> r = requests.get('http://www.cnblogs.com/')

>>> r.status_code

200
로그인 후 복사

5. 회사에서 방금 최근 OA 시스템을 도입했습니다. 여기서는 공식 문서 페이지를 예로 들어 페이지의 기사 제목 및 내용과 같은 유용한 정보만 캡처합니다.

데모 환경

운영 체제: linuxmint

Python 버전: python 3.5.2

사용 모듈: 요청, beautifulsoup4

코드는 다음과 같습니다.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
_author_ = 'GavinHsueh'

import requests
import bs4

#要抓取的目标页码地址
url = 'http://www.ranzhi.org/book/ranzhi/about-ranzhi-4.html'

#抓取页码内容,返回响应对象
response = requests.get(url)

#查看响应状态码
status_code = response.status_code

#使用BeautifulSoup解析代码,并锁定页码指定标签内容
content = bs4.BeautifulSoup(response.content.decode("utf-8"), "lxml")
element = content.find_all(id='book')

print(status_code)
print(element)
로그인 후 복사

프로그램이 실행되고 크롤링 결과를 반환합니다.


크롤링이 성공했습니다

크롤링 결과가 왜곡되는 문제에 대해

사실 처음에는 기본적으로 시스템에 기본적으로 포함되어 있는 python2를 직접 사용했는데, 이 문제로 한참 고생했습니다. 반환된 콘텐츠의 잘못된 인코딩과 Google 검색을 많이 했습니다. 이러한 솔루션 중 어느 것도 작동하지 않습니다. Python2에 의해 "미친" 후에 Python3을 정직하게 사용할 수밖에 없었습니다. Python2의 크롤링된 페이지에서 콘텐츠가 왜곡되는 문제와 관련하여 저와 같은 미래 세대가 우회를 피할 수 있도록 선배님들의 경험을 공유해 주시기 바랍니다.

위 내용은 Python3이 요청 모듈을 사용하여 페이지 콘텐츠를 크롤링하는 방법에 대한 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 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 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

WLAN 확장 모듈이 중지되었습니다. [수정] WLAN 확장 모듈이 중지되었습니다. [수정] Feb 19, 2024 pm 02:18 PM

Windows 컴퓨터의 WLAN 확장 모듈에 문제가 있는 경우 인터넷 연결이 끊어질 수 있습니다. 이러한 상황은 종종 좌절감을 주지만 다행히도 이 문서에서는 이 문제를 해결하고 무선 연결이 다시 제대로 작동하도록 하는 데 도움이 될 수 있는 몇 가지 간단한 제안 사항을 제공합니다. WLAN 확장성 모듈 복구가 중지되었습니다. Windows 컴퓨터에서 WLAN 확장성 모듈의 작동이 중지된 경우 다음 제안에 따라 문제를 해결하십시오. 네트워크 및 인터넷 문제 해결사를 실행하여 무선 네트워크 연결을 비활성화했다가 다시 활성화하십시오. WLAN 자동 구성 서비스 다시 시작 전원 옵션 수정 수정 고급 전원 설정 네트워크 어댑터 드라이버 재설치 일부 네트워크 명령 실행 이제 자세히 살펴보겠습니다.

WLAN 확장성 모듈을 시작할 수 없습니다. WLAN 확장성 모듈을 시작할 수 없습니다. Feb 19, 2024 pm 05:09 PM

이 문서에서는 무선 LAN 확장 모듈을 시작할 수 없음을 나타내는 이벤트 ID10000을 해결하는 방법을 자세히 설명합니다. 이 오류는 Windows 11/10 PC의 이벤트 로그에 나타날 수 있습니다. WLAN 확장성 모듈은 IHV(독립 하드웨어 공급업체) 및 ISV(독립 소프트웨어 공급업체)가 사용자에게 맞춤형 무선 네트워크 기능을 제공할 수 있도록 하는 Windows의 구성 요소입니다. Windows 기본 기능을 추가하여 기본 Windows 네트워크 구성 요소의 기능을 확장합니다. WLAN 확장성 모듈은 운영 체제가 네트워크 구성 요소를 로드할 때 초기화의 일부로 시작됩니다. 무선 LAN 확장 모듈에 문제가 발생하여 시작할 수 없는 경우 이벤트 뷰어 로그에 오류 메시지가 표시될 수 있습니다.

Python에서 CURL과 Python 요청 간의 상호 변환을 실현하는 방법 Python에서 CURL과 Python 요청 간의 상호 변환을 실현하는 방법 May 03, 2023 pm 12:49 PM

컬과 Pythonrequests는 모두 HTTP 요청을 보내는 강력한 도구입니다. 컬은 터미널에서 직접 요청을 보낼 수 있는 명령줄 도구인 반면, Python의 요청 라이브러리는 Python 코드에서 요청을 보내는 보다 프로그래밍적인 방법을 제공합니다. 컬을 Pythonrequestscurl 명령으로 변환하는 기본 구문은 다음과 같습니다. 컬[OPTIONS]URL 컬 명령을 Python 요청으로 변환할 때 옵션과 URL을 Python 코드로 변환해야 합니다. 다음은 컬POST 명령의 예입니다: 컬-XPOST https://example.com/api

Python 크롤러 요청 라이브러리를 사용하는 방법 Python 크롤러 요청 라이브러리를 사용하는 방법 May 16, 2023 am 11:46 AM

1. 요청 라이브러리를 설치합니다. 학습 과정에서는 Python 언어를 사용하기 때문에 Python 3.8을 미리 설치해야 합니다. Python --version 명령을 실행하여 설치한 Python 버전을 확인할 수 있습니다. Python 3.X 이상을 설치하려면 Python을 설치한 후 다음 명령을 통해 요청 라이브러리를 직접 설치할 수 있습니다. pipinstallrequestsPs: Alibaba, Douban 등 국내 pip 소스로 전환할 수 있는데, 그 기능을 시연하기 위해 간단한 웹사이트를 시뮬레이션하기 위해 nginx를 사용했습니다. 다운로드 후 루트 디렉터리에서 nginx.exe 프로그램을 실행하면 됩니다.

Python에서 일반적으로 사용되는 표준 라이브러리 및 타사 라이브러리 2-sys 모듈 Python에서 일반적으로 사용되는 표준 라이브러리 및 타사 라이브러리 2-sys 모듈 Apr 10, 2023 pm 02:56 PM

1. sys 모듈 소개 앞서 소개한 os 모듈은 주로 운영 체제용이지만, 이 글의 sys 모듈은 주로 Python 인터프리터용입니다. sys 모듈은 Python과 함께 제공되는 모듈입니다. Python 인터프리터와 상호 작용하기 위한 인터페이스입니다. sys 모듈은 Python 런타임 환경의 다양한 부분을 처리하기 위한 많은 함수와 변수를 제공합니다. 2. sys 모듈에서 일반적으로 사용되는 메서드 dir() 메서드를 통해 sys 모듈에 어떤 메서드가 포함되어 있는지 확인할 수 있습니다. import sys print(dir(sys))1.sys.argv-get 명령줄 매개변수 sys. argv는 프로그램 외부에서 명령을 구현하는 데 사용됩니다. 프로그램에 매개변수가 전달되고 명령줄 매개변수 열을 얻을 수 있습니다.

Python 프로그래밍: 네임드 튜플 사용의 핵심 사항에 대한 자세한 설명 Python 프로그래밍: 네임드 튜플 사용의 핵심 사항에 대한 자세한 설명 Apr 11, 2023 pm 09:22 PM

서문 이 기사에서는 계속해서 Python 컬렉션 모듈을 소개합니다. 이번에는 그 안에 있는 명명된 튜플, 즉 명명된 튜플의 사용을 주로 소개합니다. 더 이상 고민할 필요 없이 시작하겠습니다. 좋아요, 팔로우 및 전달을 기억하세요~ ^_^네임드 튜플 생성하기 Python 컬렉션의 네임드 튜플 클래스인 Tuples는 튜플의 각 위치에 의미를 부여하고 코드의 가독성을 향상시킵니다. 일반 튜플이 사용되는 모든 곳에서 사용할 수 있으며 위치 인덱스가 아닌 이름으로 필드에 액세스하는 기능을 추가합니다. 이는 Python 내장 모듈 컬렉션에서 나옵니다. 사용되는 일반 구문은 다음과 같습니다. import collections XxNamedT

Python이 요청을 사용하여 웹 페이지를 요청하는 방법 Python이 요청을 사용하여 웹 페이지를 요청하는 방법 Apr 25, 2023 am 09:29 AM

요청은 urllib2의 모든 기능을 상속합니다. Requests는 HTTP 연결 지속성 및 연결 풀링을 지원하고, 쿠키를 사용하여 세션을 유지하도록 지원하고, 파일 업로드를 지원하고, 응답 콘텐츠의 인코딩 자동 결정을 지원하고, 국제화된 URL 및 POST 데이터의 자동 인코딩을 지원합니다. 설치 방법은 pip를 사용하여 설치 $pipinstallrequestsGET 요청 기본 GET 요청(헤더 매개 변수 및 parmas 매개 변수) 1. 가장 기본적인 GET 요청은 get 메서드 'response=requests.get("http://www.baidu.com/)을 직접 사용할 수 있습니다. &quot

Python 요청 게시물을 사용하는 방법 Python 요청 게시물을 사용하는 방법 Apr 29, 2023 pm 04:52 PM

Python은 게시물 요청을 보내는 브라우저를 시뮬레이션합니다. importrequests 형식 request.postrequest.post(url,data,json,kwargs)#post 요청 형식 request.get(url,params,kwargs)#get 요청과 비교하여 게시물 요청 보내기 매개변수는 다음과 같이 나뉩니다. form( x-www-form-urlencoded) json(application/json) 데이터 매개변수는 사전 형식과 문자열 형식을 지원합니다. 사전 형식은 json.dumps() 메서드를 사용하여 데이터를 합법적인 json 형식 문자열로 변환합니다.

See all articles