对requests 的封装,设置成liveTemplate,就不用每次都敲了。
import datetime
import requests
class requests_spider(object):
def __init__(self, url, headers):
self.url = url
self.headers = headers
def get_request(self, ccontent_type=None):
"""当content_type=0 时返回str类型
content_type=1时返回的是二进制类型(图片视频,音频)
content_type 不传时返回的字典。
"""
try:
response = requests.get(self.url, headers=self.headers)
if ccontent_type == 0:
response.encoding = response.apparent_encoding
return response.text
elif ccontent_type == 1:
return response.content
else:
return response.json()
except Exception as e:
print("INFO: %s %s" % (datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), e))
代码处理headers
- 方法一 利用元祖字典解包的方法(字典或元祖必须是二维的),字典有key 和value
def handle_headers(string):
string=string.strip()
result=dict([(line.replace(" ","")).split(":",1) for line in string.split("\n")]) # 1表示分割一次
return result
- 方法二 利用字典的方法设置dict.setdefault
def handle_head(header_str):
headers = {}
for line in header_str.split("\n"):
if not line: # 祛除空行
continue
headers.setdefault(line.split(": ")[0],line.split(": ")[1])
return headers