2017-09-13 回答
作者:littlecoder
链接:https://www.zhihu.com/question/51160419/answer/124460961
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
普通的网页点击:
1. 建议通过浏览器或者wireshark分析消息的交互。
2. 之后通过requests模拟。
由于没有具体的网址,我没有办法给出具体的代码。
给公众号发送特定的问题:
1. 建议使用python的微信api(pip install itchat)
2. 由于没有提供python版本,我这里给出兼容的解决方案
#coding=utf8
import threading
import itchat
sign_in_mp_dict = {
u'学校微信公众号': u'学校签到口令',
u'公司微信公众号': u'公司签到口令', }
def get_day(timegap):
return int(time.strftime('%y%m%d', time.localtime(time.time() + timegap)))
next_sign_date = get_day(60*60*24)
def sign_in_thread():
''' 签到线程
如果尚未到需要签到的日期,则继续循环
如果到了需要签到的日期,则完成两个公众号的签到,并更新日期
'''
while 1:
if get_day < next_sign_date:
time.sleep(30)
else:
for k, v in sign_in_mp_dict.items():
itchat.send(msg=v,
tousername=itchat.search_mps(name=k)[0]['username'])
next_sign_date = get_day(60*60*24)
itchat.auto_login(true)
# 测试是否存在特定公众号
for mpname in sign_in_mp_dict.keys():
mplist = itchat.search_mps(name=mpname)
if len(mplist) != 1:
print(u'没有检测到公众号“%s”,请检查名称')
break
else:
signinthread = threading.thread(target=sign_in_thread)
signinthread.setdaemon(true)
signinthread.start()
itchat.run()