import pandas as pd import time import requests import json def get_post1(): # url = "http://pl.api.ledongli.cn/xq/io.ashx" url = "http://walk.ledongli.cn/rest/dailystats/upload/v3" # url = "http://walk.ledongli.cn/rest/dailystats/upload/v3?uid=77103858&pc=uuid68176b9878a7ac5c9bb655e2a4840214099f7b5a&v=8.4%20ios" headers = { # "Host": "walk.ledongli.cn", "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", "Connection": "keep-alive", "Accept": "*/*", "User-Agent": "xiaoqin/8.4 (iPhone; iOS 9.3.2; Scale/3.00)", "Accept-Language": "zh-Hans-CN;q=1", "Accept-Encoding": "gzip, deflate" } keycontentjson=[ { "date":1449676800, "calories":0, "activeValue":225, "step":100, "pm2d5":0, "duration":0, "distance":0, "report":"[]" } ] print(keycontentjson) key = json.dumps(keycontentjson) print(key) param = { "action": "profile", "cmd": "updatedaily", "pc": "uuid68176b9878a7ac5c9bb655e2a4840214099f7b5a", "uid": 77103858, "list": key, "v": "5.4%20ios", "vc": "540%20ios" } respose = requests.post(url=url, data=param, headers=headers) print(respose.text) get_post1()
import re import pandas as pd import time import requests import json def get_post1(): # url = "http://pl.api.ledongli.cn/xq/io.ashx" url = "http://walk.ledongli.cn/rest/dailystats/upload/v3" # url = "http://walk.ledongli.cn/rest/dailystats/upload/v3?uid=77103858&pc=uuid68176b9878a7ac5c9bb655e2a4840214099f7b5a&v=8.4%20ios" headers = { # "Host": "walk.ledongli.cn", "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", "Connection": "keep-alive", "Accept": "*/*", "User-Agent": "xiaoqin/8.4 (iPhone; iOS 9.3.2; Scale/3.00)", "Accept-Language": "zh-Hans-CN;q=1", "Accept-Encoding": "gzip, deflate" } keycontentjson=[ { "date":1449676800, "calories":0, "activeValue":225, "step":100, "pm2d5":0, "duration":0, "distance":0, "report":"[]" } ] print(keycontentjson) key = json.dumps(keycontentjson) print(key) param = { "action": "profile", "cmd": "updatedaily", "pc": "uuid68176b9878a7ac5c9bb655e2a4840214099f7b5a", "uid": 77103858, "list": key, "v": "5.4%20ios", "vc": "540%20ios" } respose = requests.post(url=url, data=param, headers=headers) print(respose.text) # get_post1() # coding: utf-8 # date: 2015年9月29日01:50:37 # usage: edit steps and ledongli's uid(u need to download this app) .That would be ok .Good luck. ^_^ import requests import sys import json import datetime import time import random def isnum(value): try: temp = int(value) except Exception: return False else: return True # like 2015-09-25 00:00:00 converts to unix time stamp def formatDate(): nowtime = datetime.datetime.now() date = time.strftime('%Y-%m-%d') strtemp_date = date + ' 00:00:00' ledongli_date = time.strptime(strtemp_date, '%Y-%m-%d %H:%M:%S') finaldate = time.mktime( ledongli_date) # rusult is 1443456000.0(float type), but still need to format to 1443456000 finaldate = int(finaldate) return finaldate def main(steps, uid): if not isnum(steps): print('param error. steps must be an integer.') exit() url = 'http://pl.api.ledongli.cn/xq/io.ashx' fake_headers = { 'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 5.0.2; MI 2 MIUI/5.7.16)', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Accept-Encoding': 'gzip' } keycontentjson = [ { "date": formatDate(), "calories": 0, "activeValue": 108, "steps": steps, "pm2d5": 0, "duration": 0, "distance": 0, "report": "[]" } ] # key is a str type # key must be a json data convert to string key = json.dumps(keycontentjson) param = { 'action': 'profile', 'pc': '865863023705721', 'cmd': 'updatedaily', 'uid': uid, 'list': key } r = requests.post(url, data=param, headers=fake_headers) # return json.loads(r.text)["status"] return r # if __name__ == '__main__': # print("Powered By 真红酱\n") # uid = input("请输入乐动力ID--->") # steps = input("请输入步数--->") # print(main(steps,uid)) # # while main(steps, uid) != "OK": # # pass # print("设置完毕:" + str(steps)) # # # di 77103858 """ This script simulate a PC wechat client to get wechat sports data """ # Headers: simulate wechat embedded browser HEADERS = { 'Connection': 'keep-alive', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)' ' Chrome/39.0.2171.95 Safari/537.36 MicroMessenger/6.5.2.501' ' NetType/WIFI WindowsWechat QBCore/3.43.27.400 QQBrowser/9.0.2524.400', 'Accept-Encoding': 'gzip, deflate' } COOKIES = { 'hwstepranksk': '填入Cookie', 'pass_ticket': '填入Cookie' } REQUEST_URL = 'https://hw.weixin.qq.com/steprank/step/personal' def get_info(openid): """Get data according to openid""" params = {"openid": openid} data = requests.get(url=REQUEST_URL, params=params, cookies=COOKIES, headers=HEADERS) print(data.text) exit() data.encoding = "utf-8" try: return parse_code(data.text) except LookupError: return {"Error": "Cookies could be out of date"} def parse_code(code): """Parse web page source code""" match_strings = re.findall(r"window.json = (\S+);", code) # json strings are hided in js code if len(match_strings) == 0: raise LookupError else: json_string = match_strings[0] json_object = json.loads(json_string) data_dict = { "openid": json_object.get("myopenid"), "Today Steps": json_object.get("rankdesc").get("score"), "History Steps": json_object.get("rankdetaillist")[0].get("score"), "Highest Record": json_object.get("rankdetaillist")[1].get("score") } return data_dict # if __name__ == "__main__": # print(get_info("o95gOt0QsJ4O4vxBVUzmYeXGuN74"))