본문 바로가기

컴퓨터-IT

파이썬 크롤링 시 requests get 함수에서 문제 발생하면 생각할 것 파라메터설정 변경

disclaimer

챗지피티에게 물어봐서 get 보낼 때 같이 설정해줘야하는 것들을 찾아보았다. 강의들에서 나오는 것들도 다 이런 인자를 변경해가면서 오류 해결한 것들이다.  참고들 하시게

`requests.get` 함수는 HTTP GET 요청을 보내는 데 사용되는 Python의 `requests` 라이브러리의 함수입니다. 이 함수의 인자로 사용할 수 있는 주요 매개변수들을 설명하겠습니다.

### 주요 매개변수

1. **url** (필수):
   - 요청을 보낼 URL입니다.
   - 예: `"https://www.example.com"`

2. **params** (선택):
   - URL 쿼리 문자열 매개변수입니다. 딕셔너리, 튜플 목록, 또는 URL 인코딩된 문자열로 제공할 수 있습니다.
   - 예: `{"key1": "value1", "key2": "value2"}`
   - 결과: `"https://www.example.com?key1=value1&key2=value2"`

3. **headers** (선택):
   - HTTP 헤더를 딕셔너리 형태로 제공합니다.
   - 예: `{"User-Agent": "Mozilla/5.0", "Accept": "text/html"}`

4. **cookies** (선택):
   - 쿠키를 딕셔너리 형태로 제공합니다.
   - 예: `{"session_id": "123456", "user": "john_doe"}`

5. **auth** (선택):
   - HTTP 기본 인증을 설정합니다. `(username, password)` 튜플을 사용합니다.
   - 예: `("user", "pass")`

6. **timeout** (선택):
   - 요청의 타임아웃(초)을 설정합니다. 정수 또는 부동 소수점 수를 사용할 수 있으며, `(connect_timeout, read_timeout)` 형태의 튜플로도 설정 가능합니다.
   - 예: `5` 또는 `(3.05, 27)`

7. **allow_redirects** (선택):
   - 리디렉션을 자동으로 따를지 여부를 설정합니다. 기본값은 `True`입니다.
   - 예: `False`

8. **proxies** (선택):
   - 프록시 서버를 설정합니다. 딕셔너리 형태로 제공합니다.
   - 예: `{"http": "http://10.10.1.10:3128", "https": "https://10.10.1.10:1080"}`

9. **verify** (선택):
   - SSL 인증서 검증을 설정합니다. 기본값은 `True`입니다. 경로를 설정하여 특정 인증서 파일을 사용할 수도 있습니다.
   - 예: `False` 또는 `"/path/to/certfile"`

10. **stream** (선택):
    - 응답 내용을 즉시 다운로드하지 않고 스트리밍으로 가져올지 여부를 설정합니다. 기본값은 `False`입니다.
    - 예: `True`

11. **cert** (선택):
    - 클라이언트 측 인증서를 설정합니다. 경로 문자열 또는 `(cert_file, key_file)` 튜플을 사용할 수 있습니다.
    - 예: `"/path/to/certfile"` 또는 `("/path/client.cert", "path/client.key")`

### 예제

아래는 `requests.get` 함수의 주요 매개변수를 사용하는 예제입니다:

```python
import requests

url = "https://www.example.com"
params = {"key1": "value1", "key2": "value2"}
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
    "Referer": "https://www.example.com"
}
cookies = {"session_id": "123456"}
timeout = 5

response = requests.get(url, params=params, headers=headers, cookies=cookies, timeout=timeout)

print(response.status_code)
print(response.text)
```

이 예제에서는 `url`, `params`, `headers`, `cookies`, `timeout` 매개변수를 사용하여 GET 요청을 보내고, 응답 상태 코드와 응답 본문을 출력합니다. 각 매개변수는 HTTP 요청을 보다 구체적으로 설정하고, 필요한 경우 서버와의 상호 작용을 제어할 수 있게 해줍니다.