50 lines
1.2 KiB
Python
50 lines
1.2 KiB
Python
# -*- coding: UTF-8 -*-
|
||
"""
|
||
@description 工具类,requests库二次封装
|
||
@author wendell
|
||
"""
|
||
import requests
|
||
from requests.exceptions import InvalidURL
|
||
|
||
|
||
def get(url, timeout=None, headers=None, encoding=None):
|
||
"""
|
||
发送GET请求
|
||
:param url: URL
|
||
:param timeout: 超时时间(秒)
|
||
:param headers: 头部信息
|
||
:param encoding: 编码
|
||
:return:
|
||
"""
|
||
# 参数验证,URL不能为空
|
||
if not url:
|
||
raise InvalidURL("Invalid URL %r" % url)
|
||
response = requests.get(url, headers=headers, timeout=timeout)
|
||
if not response:
|
||
return None
|
||
if encoding:
|
||
response.encoding = encoding
|
||
if response.status_code == 200:
|
||
r_text = response.text
|
||
response.close()
|
||
return r_text
|
||
response.close()
|
||
return None
|
||
|
||
|
||
def prepare_url(url):
|
||
"""
|
||
预处理URL连接,规范url
|
||
www.a.com //www.a.com ==>> http://www.a.com
|
||
:param url: URL
|
||
:return: 处理的URL
|
||
"""
|
||
if not url:
|
||
return None
|
||
res = url
|
||
if url.startswith('//'):
|
||
res = 'http:' + url
|
||
elif not url.startswith('http://') and not url.startswith('https://'):
|
||
res = 'http://' + url
|
||
return res
|