Python 크롤러 시작하기 (2 개)-일반적인 방법 및 요청 라이브러리 사용 (요청 라이브러리 중국어 공식 웹 사이트)

머리말

학습은 나를 행복하게하고 게임은 나를 슬프게합니다. 오늘 rushB는 아무것도 아닌 다른 날입니다.
HXDM, 요청 라이브러리의 방법과 사용 방법을 함께 배우고 코드의 세계에 빠져 보자. 우 ~~

1. 요청 라이브러리 소개

먼저 요청 라이브러리의 공식 웹 사이트를 나열합니다. 현재 위치 : 요청 라이브러리 중국 공식 웹 사이트
요청 라이브러리 선언 요청 요청 : HTTP for Humans (지배)

공식 웹 사이트에는 자세한 사용 문서가 있으며 몇 가지 작은 예가 있습니다. 공식 웹 사이트에서 Luo Li의 속물 블로그를 읽고 싶지 않은지 확인할 수 있습니다.

요청 라이브러리는 urllib 프레임 워크를 기반으로합니다 .

둘째, 요청 라이브러리의 일반적인 방법 및 지침

방법 기술
requests.get () 특정 페이지 얻기
requests.post () HTTP POST 요청 보내기
requests.put () HTTP PUT 요청 제출
requests.delete () HTTP 삭제 요청 제출
requests.head () HTTP HEAD (헤더) 정보 가져 오기
requests.options () HTTP OPTINS 요청 제출

셋, 응답 개체의 속성 및 설명

응답 객체의 속성을 이해하기 전에 응답 객체가 무엇인지 살펴 보겠습니다. 예를 들어 브라우저를 사용할 때 CSDN을 검색하고 F12를 눌러 개발자 도구를 엽니 다. 네트워크에서 아래 그림의 빨간색 원 안에 두 개의 헤더가 표시됩니다.
여기에 사진 설명 삽입
요청 객체는 브라우저가 서버로 보낸 요청이고 응답 객체는 브라우저 요청에 대한 서버의 응답입니다. 아래 코드를 살펴 보겠습니다.

import requests

r = requests.get('https://www.baidu.com')

그래서 우리는 그것을 'www.baidu.com'요청으로 생각할 수 있고 메소드 requests.get()는 응답을 반환하므로 응답 객체를 얻습니다 r. 직접 인쇄 해 봅시다 r.

import requests

r = requests.get('https://www.baidu.com')
print(r)

실행 결과 :
여기에 사진 설명 삽입
결과가 우리가 상상 한 Baidu 웹 페이지의 html 코드가 아니라 응답 상태 코드임을 알 수 있습니다. 이것은 r여기에 응답 객체 가 있기 때문에 원하는 정보를 얻기 위해 속성에 액세스해야하기 때문입니다.
응답 개체의 속성 :

속성 기술
response.text HTTP 응답 페이지 콘텐츠
response.encoding 텍스트 인코딩 형식
response.apparent_encoding 콘텐츠 분석에서 파생 된 응답 콘텐츠 코딩 방법
response.status_code HTTP 응답 상태
response.content HTTP 응답 페이지 콘텐츠의 바이너리 형식

다음 코드를 살펴 보겠습니다.

import requests

r = requests.get('https://www.baidu.com')
r.encoding = 'utf-8'

print(r.text)

실행 결과 :
여기에 사진 설명 삽입
Baidu 홈페이지의 HTML 코드를 얻었습니다.

넷째, 요청 라이브러리에서 공통 메소드 사용

1. requests.get () 사용

get 메소드는 요청 라이브러리에서 가장 일반적으로 사용되는 메소드이며 매개 변수를 변경하여 원하는 HTTP 응답을 얻을 수 있습니다.
예를 들어 Douban 웹 사이트를 직접 방문하여
코드 가 무엇인지 확인합니다 .

import requests

r = requests.get('https://www.douban.com')
r.encoding = 'utf-8'

print(r.text)

실행 결과 :
여기에 사진 설명 삽입
이봐, 무슨 일이야, 아무것도 없어, 코드가 잘못이 아니야! 텍스트가없는 이유는 무엇입니까?
HTTP 상태 응답 코드를 인쇄 해 보겠습니다.
암호:

import requests

r = requests.get('https://www.douban.com')
r.encoding = 'utf-8'

print(r.status_code)

실행 결과 :
여기에 사진 설명 삽입
HTTP 상태 응답 코드가 418입니다.이 상태 코드는 무엇을 의미합니까? 418: 클라이언트가 찻 주전자에 커피를 만들라는 요청을 보낼 때 다음을 의미하는 오류 상태 코드를 반환합니다. 즉, "나는 찻 주전자입니다"라는 의미입니다. 이 HTTP 상태 코드는 일부 웹 사이트에서 이스터 에그로 사용되며 일부 웹 사이트에서도 사용됩니다.파충류 경고. 그것은 우리가 경고를 받았음을 의미하고 Douban은 우리에게 "당신이 나쁜 파충류, 규칙을 따르지 않으면 사람들이 당신에게 그것을 보여주지 않을 것입니다! Humph╭ (╯ ^ ╰) ╮!"라고 말했습니다. 따라서 일반적인 방법으로 Douban에 액세스해야합니다. 다행히도이 requests.get()메서드를 사용하면 브라우저 액세스를 시뮬레이션하는 매개 변수를 추가 할 수 있습니다. 이제 "이봐, 도망 칠 수 없습니다."라고 말할 수 있습니다.
브라우저 액세스를 모방하는 방법은 무엇입니까?
웹 페이지를 열고 F12를 눌러 개발자 모드를 열고 네트워크에서 이름 아래의 항목을 클릭
하면 다음 상황을 볼 수 있습니다.
여기에 사진 설명 삽입
요청 헤더 아래의 큰 빨간색 원 User-Agent은 서버 브라우저에 알려주는 정보입니다. 코드를 어떻게 작성할 수 있습니까?

import requests

headers = {
    
    
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 \
            (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'
}  # 模拟浏览器访问

r = requests.get('https://www.douban.com', headers=headers)
r.encoding = 'utf-8'

print(r.text)
print('状态码:')
print(r.status_code)

실행 결과 :
여기에 사진 설명 삽입
Douban의 html 코드와 상태 코드가 있음을 알 수 200있습니다. requests.get()이 방법에는 유용한 매개 변수가 많이 있습니다. 예를 들어

payload = {
    
    'key1': 'value1', 'key2': 'value2'}
r = requests.get("http://httpbin.org/get", params=payload)

대신에

r = requests.get("http://httpbin.org/get?key1=value1&key2=value2")

요청 라이브러리공식 웹 사이트 로 이동 하여 직접 탐색하고 개선 할 코드를 더 작성할 수 있습니다.

2. requests.post () 메서드 사용

요청 라이브러리를 사용하면 일부 웹 페이지에서 URL후속 추가를 허용하지 않고 Vaule양식 만 허용 할 수 있기 때문에 게시물에서 HTTP 응답을 요청할 수 있습니다. 우리는 쓸 수있다:

payload = {
    
    'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)

이렇게하면 양식의 내용을 직접 사용자 지정할 수 있습니다. emmm 양식이 무엇인지에 관해서는 학습이 필요합니다.

3. 넣기, 삭제 및 기타 방법 사용

다른 방법의 사용은 당연히 위와 유사하며 HTTP 요청에 대한 지식을 습득 한 후 웹 리소스를 크롤링하는 데 사용해야하는 방법을 자연스럽게 알게됩니다.
사용 예 :

r = requests.put('http://httpbin.org/put', data = {
    
    'key':'value'})
r = requests.delete('http://httpbin.org/delete')
r = requests.head('http://httpbin.org/get')
r = requests.options('http://httpbin.org/get')

4. 웹 사이트 연습

http://httpbin.org 는 요청과 응답을 받아들이는 웹 사이트로 보통 연습 할 수 있습니다.
여기에 사진 설명 삽입
어서!
여기에 사진 설명 삽입

추천

출처blog.csdn.net/Bob_ganxin/article/details/108740320