이제 Python을 사용하여 GET 패키지와 POST 패키지를 만들어 보겠습니다.
그 유용성은 모두가 천천히 이해하게 될 것입니다.
Python에는 수많은 라이브러리가 포함되어 있습니다. 신흥 언어로서 Python은 HTTP를 충분히 강력하게 지원합니다.
이제 새로운 라이브러리인 httplib와 urllib를 소개합니다
이름을 보면 HTTP와 URL에서 작동한다는 것을 알 수 있습니다.
먼저 서버와 연결을 설정해야 합니다. (아래의 다양한 기능을 구현하기 위해 특정 웨이보를 예로 들었습니다)
conn = httplib.HTTPConnection("ti50*****com");
있는 한 오류가 없습니다. 연결이 성공한 것으로 간주할 수 있으며 다음으로 데이터 패킷을 보낼 수 있습니다.
위에서 GET 패키지의 구조를 언급했지만 HEARDER 부분만 언급했습니다. httplib에서는 heaer가 사전을 통해 저장됩니다. 아래에 정의해 보겠습니다.
headers = {"Content-Type": "application/x-www-form-urlencoded",
"Accept": "text/html,application/ xhtml +xml,application/xml;q=0.9,*/*;q=0.8",
"추천자": "http://ti50.*****com/g/s?sid = **********************",
"인코딩 허용": "",
"언어 허용" : "zh-CN,zh;q=0.8",
"Accept-Charset": "GBK,utf-8;q=0.7,*;q=0.3",
" Cookie": Cookie }
Accept-Encoding 해당 콘텐츠를 삭제했습니다. 이는 서버의 경우 클라이언트가 압축 형식을 허용할 수 없음을 의미합니다. 데이터 패킷은 원본 데이터와 함께 다시 전송되므로 압축해제 프로세스는 웹페이지를 직접 분석하지만 그 결과 트래픽이 많아지고 네트워크 실시간 성능이 저하됩니다. 당연히 압축 해제를 특별히 처리하는 다른 라이브러리도 있습니다.
그럼 저희가 직접 보내드리겠습니다.
conn.request(method="GET",url='''http://ti50****com/g/s?************_TK9EH&r='' ' + go_num + '''&aid=amsg&bid=******=true&ifh=1&ngpd=false''',headers=headers);
메서드 필드는 어떤 유형의 데이터 패킷이 전송되는지 나타냅니다.
URL 필드는 주소를 문자열 형식으로 정의합니다.
헤더 필드는 헤더를 정의합니다.
일반적으로 데이터 패킷이 서버로 전송되면 서버는 이에 따라 응답 패킷을 반환합니다. 그리고 이 응답 패킷은 우리에게 종종 유용합니다. 우리는 응답 패킷을 얻기 위해 다음 명령을 사용합니다.
response = conn.getresponse();
위 명령문의 괄호는 응답 패킷의 첫 번째 문자를 읽은 횟수를 나타냅니다.
POST 패키지와 GET 패키지의 생성 과정은 기본적으로 동일합니다.
단, 새로운 BODY를 정의하면 됩니다. 이 부분은 문자열로 정의할 수 있습니다.
params = 'msg=****************************'
아직도 이렇게 해야 합니다. 서버보다 먼저 연결하세요.
conn = httplib.HTTPConnection("ti50*****com");
보내기
conn.request(method="POST",url='' '/g/s?sid=****************&ngpd=false''',body=params,headers=headers);
찾을 수 있습니다. 위 수식은 GET 패킷을 보내는 형식과 약간 다릅니다.
방식이 변경되었습니다.
URL에 도메인 이름이 없습니다.
추가 본문 필드가 있습니다.
두 번째를 생각해 볼 수 있습니다. 도메인 이름이 정의되지 않은 경우 시스템은 가장 최근에 서버에 연결하는 데 사용된 도메인 이름을 대체합니다.
응답 패킷을 얻는 방법은 GET 패킷과 동일합니다.
작은 앱이 엉망입니다.
(1) 무작위 문자열 생성.
POST를 사용하여 흥미로운 작업을 수행할 때 종종 서버 확인 문제가 발생하며 이러한 상황을 처리하기 위해 임의의 문자열을 사용할 수 있습니다.
파이썬의 난수를 위한 라이브러리...random.
간단한 애플리케이션에 매우 편리합니다. 예를 들어, a와 b 사이의 임의의 정수를 생성합니다.
random.randint(a,b)
>>> random.randint(10,20)
>>> 15
이 단계를 얻었습니다 1, 우리는 쉽게 임의의 문자열 프로그램을 작성할 수 있습니다.
from random import Random def random_str(randomlength): str = '' chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789' length = len(chars) - 1 random = Random() for i in range(randomlength): str+=chars[random.randint(0, length)] return str
분명히 이 함수를 호출할 때 임의의 문자열 길이가 제공되어야 합니다.
물론, 문자의 문자를 수정하여 임의 문자열의 문자를 정의할 수도 있습니다.
(2) 프로그램 실행 시간
이제 프로그램 시간을 계산하는 매우 부정확한 방법을 제공합니다.
from time import clock as now start = now() finish = now() run_time = finish - start print run_time