>  기사  >  백엔드 개발  >  요청 모듈을 사용하여 웹 페이지를 크롤링하는 방법은 무엇입니까?

요청 모듈을 사용하여 웹 페이지를 크롤링하는 방법은 무엇입니까?

WBOY
WBOY앞으로
2023-04-11 22:37:181907검색

​웹페이지를 크롤링하는 것은 실제로 URL을 통해 웹페이지 정보를 얻는 것입니다. 웹페이지 정보의 핵심은 JavaScript와 CSS가 추가된 HTML 코드입니다. Python은 웹 페이지 정보를 캡처하기 위한 타사 모듈인 요청을 제공합니다. 요청 모듈은 문자 그대로 인간을 위해 특별히 설계된 HTTP 모듈을 의미하는 "HTTP for Humans"라고 부릅니다.

1. 요청 보내기

요청 모듈은 HTTP 요청을 보내기 위한 다양한 기능을 제공합니다. 일반적으로 사용되는 요청 기능은 표 10-1에 나와 있습니다.

표 10-1 요청 모듈의 요청 기능

요청 모듈을 사용하여 웹 페이지를 크롤링하는 방법은 무엇입니까?

2. 응답 받기

요청 모듈에서 제공하는 Response 클래스 객체는 클라이언트의 요청에 동적으로 응답하고, 사용자에게 보내는 정보를 제어하는 ​​데 사용됩니다. , 상태 코드, 웹 페이지 콘텐츠 등을 포함하여 동적으로 응답이 생성됩니다. 다음으로 표 10-2와 같이 Response 클래스가 얻을 수 있는 정보를 나열하는 표가 사용됩니다.

표 10-2 응답 클래스의 공통 속성

요청 모듈을 사용하여 웹 페이지를 크롤링하는 방법은 무엇입니까?

다음으로, 요청 모듈을 사용하여 Baidu 웹 페이지를 크롤링하는 방법을 보여주는 사례를 사용하겠습니다. 구체적인 코드는 다음과 같습니다.

# 01 requests baidu
import requests
base_url = 'http://www.baidu.com'
#发送GET请求
res = requests.get (base_url)
print("响应状态码:{}".format(res.status_code))#获取响应状态码
print("编码方式:{}".format(res.encoding))#获取响应内容的编码方式
res.encoding = 'utf-8'#更新响应内容的编码方式为UIE-8
print("网页源代码:n{}".format(res.text)) #获取响应内容

In the 위 코드에서 라인 2는 가져오기 요청 모듈을 사용하여 가져옵니다. 코드의 라인 3~4는 URL을 기반으로 서버에 GET 요청을 보내고, 변수 res를 사용하여 서버에서 반환된 응답 콘텐츠를 받습니다. 코드는 응답 내용의 상태 코드와 인코딩 방법을 인쇄합니다. 응답 내용의 인코딩 방법은 "utf-8"로 변경됩니다. 코드의 8번째 줄은 응답 내용을 인쇄합니다. 프로그램을 실행하면 다음과 같이 출력됩니다.

响应状态码:200
编码方式:ISO-8859-1
网页源代码:
<!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 href=http://s1.bdstatic.
com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head>
<body link=#0000cc>…省略N行…</body></html>

요청 모듈을 사용하여 웹 페이지를 크롤링할 때 네트워크 연결 없음, 서버 연결 실패 등의 이유로 다양한 예외가 발생할 수 있다는 점을 언급할 가치가 있습니다. 가장 일반적인 두 가지 예외는 URLError와 HTTPError입니다. 이러한 네트워크 예외는 try...Exception 문을 사용하여 캡처하고 처리할 수 있습니다.

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

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제