from urllib import request, parse
from urllib.error import HTTPError, URLError
import json
from http import cookiejar
class session():
def __init__(self):
cookie_object = cookiejar.CookieJar()
handler = request.HTTPCookieProcessor(cookie_object)
self.opener = request.build_opener(handler)
def get(self, url, headers=None):
return get(url, headers=headers, opener=self.opener)
def post(self, url, form=None, headers=None):
return post(url, form=form, headers=headers, opener=self.opener)
def get(url, headers=None, opener=None):
return urlrequests(url, headers=headers, opener=opener)
def post(url, form=None, headers=None, opener=None):
return urlrequests(url, form, headers, opener=opener)
def urlrequests(url, form=None, headers=None, opener=None):
html_bytes = b''
# 创建headers
if headers is None:
user_agent = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3377.1 Safari/537.36'
headers = {
'User-agent': user_agent,
}
# 生成post请求
if form:
data = parse.urlencode(form).encode('utf-8')
else:
data = None
# 尝试获取html,如果失败,返回错误信息
try:
# 生成发送请求
req = request.Request(url, headers=headers)
if opener:
response = opener.open(req, data=data)
else:
response = request.urlopen(req, data=data)
html_bytes = response.read()
except HTTPError as e:
print(e)
except URLError as e:
print(e)
return html_bytes
if __name__ == '__main__':
# get测试
# url = 'http://www.baidu.com'
# html_bytes = get(url)
# print(html_bytes)
# post测试
# url = 'http://fanyi.baidu.com/sug'
# form = {'kw': 'fallback'}
# html_bytes = post(url, form=form)
# try:
# print(json.loads(html_bytes))
# except:
# print(html_bytes)
# session测试
s = session()
url = 'http://www.renren.com/ajaxLogin/login?1=1&uniqueTimestamp=2018721441132'
form = {
'email': '18045206522',
'icode': '',
'origURL': 'http://www.renren.com/home',
'domain': 'renren.com',
'key_id': '1',
'captcha_type': 'web_login',
'password': '76d5bf85655bfe047e999c3b18186bca396d6eda0a659ad737e9195e1fc3b59b',
'rkey': '74c0f561e87f8b2e85050baaf04329ec',
'f': 'http%3A%2F%2Fwww.renren.com%2F967453172',
}
res = s.post(url, form=form)
url = json.loads(res)['homeUrl']
response = s.get(url)
print(response.decode('utf-8'))
tuozhan.py
最新推荐文章于 2020-12-09 06:01:32 发布