기술나눔

Python 요청 크롤러

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Python의 요청 라이브러리는 HTTP 요청을 보내고 응답을 처리하기 위한 강력하고 사용하기 쉬운 HTTP 라이브러리입니다. Python에서 가장 널리 사용되는 웹 크롤러 프레임워크 중 하나이며 웹 페이지에서 데이터를 추출하고, 웹 사이트를 크롤링하고, API 호출을 수행하는 데 널리 사용됩니다.

요청 라이브러리를 사용하면 GET, POST, PUT, DELETE 등 다양한 HTTP 요청을 쉽게 보낼 수 있습니다. HTTP 요청 객체를 생성하고 요청 헤더, 요청 본문 및 기타 매개변수를 설정한 다음 요청을 보내고 응답을 받을 수 있습니다. 요청 라이브러리는 응답 콘텐츠 가져오기, JSON 구문 분석, HTML 구문 분석 등을 포함하여 응답을 처리하는 다양한 편리한 방법을 제공합니다.

요청이 로컬 Python 환경에 설치되지 않은 경우 명령 프롬프트 창에 명령을 입력할 수 있습니다.

pip install requests

요청 모듈 설치

웹페이지를 마음대로 열 수 있습니다. F12->"Ctrl+R"을 눌러 새로 고침하고, 이름에 있는 항목을 두 번 클릭하세요.

User-Agent와 Cookie를 볼 수 있습니다.

다음은 일반적으로 사용되는 요청 라이브러리 기능 및 사용법입니다.

  1. GET 요청 보내기:

    response = requests.get(url)
    

  2. POST 요청 보내기:

    response = requests.post(url, data=payload)
    

  3. 요청 헤더를 설정합니다.

    1. headers = {'User-Agent': 'Mozilla/5.0'}
    2. response = requests.get(url, headers=headers)

  4. URL 매개변수 전달:

    1. params = {'key1': 'value1', 'key2': 'value2'}
    2. response = requests.get(url, params=params)

  5. 파일 보내기:

    1. files = {'file': open('file.txt', 'rb')}
    2. response = requests.post(url, files=files)

  6. 응답 내용을 가져옵니다.

    print(response.text)
    

  7. JSON 응답을 구문 분석합니다.

    json_data = response.json()
    

  8. HTML 응답을 구문 분석합니다.

    1. from bs4 import BeautifulSoup
    2. soup = BeautifulSoup(response.text, 'html.parser')

  9. 예외 처리:

    1. try:
    2. response = requests.get(url)
    3. response.raise_for_status()
    4. except requests.HTTPError as e:
    5. print('HTTPError:', e)
    6. except requests.ConnectionError as e:
    7. print('ConnectionError:', e)
    8. except requests.Timeout as e:
    9. print('Timeout:', e)
    10. except requests.RequestException as e:
    11. print('RequestException:', e)

위 내용은 요청 라이브러리 기능 중 일부에 불과합니다. 또한 세션 관리, 인증, 프록시 설정 등과 같은 다양한 고급 기능과 옵션을 제공하여 웹 크롤링 및 API 호출을 쉽게 수행할 수 있습니다.

완전한 요청 기능 루틴:

  1. import requests
  2. def get_html(url):
  3. '''
  4. 两个参数
  5. :param url:统一资源定位符,请求网址
  6. :param headers:请求头
  7. :return html 网页的源码
  8. :return sess 创建的会话
  9. '''
  10. # 请求头
  11. headers={'User-Agent': '复制了放这里'}
  12. # 创建Session, 并使用Session的get请求网页
  13. sess = requests.Session()
  14. response = sess.get(url=url,headers = headers)
  15. # 获取网页信息文本
  16. html = response.text
  17. return html, sess