吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1438|回复: 22
收起左侧

[求助] python post提交数据的问题,求助。

[复制链接]
mikaelson 发表于 2020-10-30 14:50
本帖最后由 mikaelson 于 2020-10-30 20:14 编辑

这是我要post提交的网址https://form.ebdan.net/ls/dLgp6hcG


我抓捕到post的url是https://form-preview-api.eqxiu.com/lp/r/9960193/8488813472?code=dLgp6hcG


于是我就依葫芦画瓢,搞了一段post提交代码。


现在问题是:因为我要做到定时提交。所以我设定了时间去执行插入post语句。结果会出现,时不时的,设定的时间到了,并没有执行,延迟了20秒左右。才打印 “结束时间”。概率性的发生的,网络绝对没问题的。插入的数据也是一条而已,应该不至于被服务器封之类的。所以不知道这个延迟是怎么回事。

我一般都是设定时间的前1-2分钟才执行程序,所以应该不至于是程序运行太久卡死了= =

另外,有更好的解决办法吗?求助。谢谢52里的大神。


[Python] 纯文本查看 复制代码
import requests
import schedule
import time
import datetime

url='https://form-preview-api.eqxiu.com/lp/r/9960193/8488813472?code=dLgp6hcG'

data={'eq[f_1475845187]':1,'eq[f_2877391863]':1,'eq[f_9185793012]':11111111111,'eq[f_9219383049]':"不到场"}

def job():

        response=requests.post(url,data=data)

        print("结束时间:",datetime.datetime.now())      
      
        print(response)

        print(response.status_code)

        print(response.text)

schedule.every().day.at("22:40").do(job)
print("开始时间:",datetime.datetime.now())
while True:
        schedule.run_pending()
        time.sleep(0.01)

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Love3295292 发表于 2020-10-30 17:29
代码没有什么问题,测试也没有什么。
可能原因猜测:
1.While循环中,停顿时间太少,导致CPU等资源消耗太多,程序卡导致
2.请求时网络情况影响(可能性不大)

建议改成如下代码测试(同时输出请求前的时间,并把间隔时间改成1秒):
[Python] 纯文本查看 复制代码
import requests
import schedule
import time
import datetime

url = 'https://form-preview-api.eqxiu.com/lp/r/9960193/8488813472?code=dLgp6hcG'
data = {'eq[f_1475845187]': 1, 'eq[f_2877391863]': 1, 'eq[f_9185793012]': 11111111111, 'eq[f_9219383049]': "不到场"}


def job():
    print("请求开始时间:", datetime.datetime.now())
    response = requests.post(url, data=data)
    print("请求结束时间:", datetime.datetime.now())
    print(response)
    print(response.status_code)
    print(response.text)


schedule.every().day.at("22:40").do(job)
print("开始时间:", datetime.datetime.now())
while True:
    schedule.run_pending()
    time.sleep(1)

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
mikaelson + 1 + 1 热心回复!

查看全部评分

zfzhhh 发表于 2020-10-30 15:13
很简单,你在post前也打印一下,看看是不是准确时间.
这样就能分析是不是post时候浪费了太多时间.

但是问题应该不是post
而在于schedule这个库, post前的时间如果不是准确的,那说明问题出在schedule这个库上.
chinaqin 发表于 2020-10-30 15:19
个人建议 定时设置在windows定时执行计划里面提前5-分钟,然后在python里面访问北京时间等待,时间未到就睡眠1s,大于就post执行一次
 楼主| mikaelson 发表于 2020-10-30 15:34
zfzhhh 发表于 2020-10-30 15:13
很简单,你在post前也打印一下,看看是不是准确时间.
这样就能分析是不是post时候浪费了太多时间.

我后来有尝试在post前打印一下时间,其实时间到了,他是有进入函数的。就是post那条语句一直没执行。
这是我早上执行的截图。

我测试的时候设定了10点54分运行。

时间到了之后,函数是执行了。但是post被推迟了21秒左右。

1.png
 楼主| mikaelson 发表于 2020-10-30 15:38
chinaqin 发表于 2020-10-30 15:19
个人建议 定时设置在windows定时执行计划里面提前5-分钟,然后在python里面访问北京时间等待,时间未到就睡 ...

你说的这个问题也是我困扰的,因为要求时间准确,我有点想尝试直接取北京时间,但是我刚初学,还没搞懂怎么以北京时间来执行任务。。。

目前用的是最傻的做法。先把电脑时间跟北京时间同步了,确保误差最小。。。但是现在问题是他居然会延时。。。而且是post那一句延迟。
zfzhhh 发表于 2020-10-30 15:39
mikaelson 发表于 2020-10-30 15:34
我后来有尝试在post前打印一下时间,其实时间到了,他是有进入函数的。就是post那条语句一直没执行。
这 ...

那原因不就是post花费时间过长吗,
'服务器花了这么久时间来处理这个post
 楼主| mikaelson 发表于 2020-10-30 15:42
zfzhhh 发表于 2020-10-30 15:39
那原因不就是post花费时间过长吗,
'服务器花了这么久时间来处理这个post

我觉得不应该啊,就插入一条数据,而且还是可以万级别访问的url。。。我就插1条。。。

高峰的时候,同一个点有几万人同时插都没这么卡过(手动访问页面点提交的做法)。。。

会不会是我没加headers的原因?如果要加headers应该怎么做= =
mmattic 发表于 2020-10-30 15:50
学习下!!~~
不苦小和尚 发表于 2020-10-30 15:51
感觉是你网络的问题啊,我这里都好的,pythonProject/定时任务.py
开始时间: 2020-10-30 15:48:24.400309
结束时间: 2020-10-30 15:49:00.120205
 楼主| mikaelson 发表于 2020-10-30 15:55
不苦小和尚 发表于 2020-10-30 15:51
感觉是你网络的问题啊,我这里都好的,pythonProject/定时任务.py
开始时间: 2020-10-30 15:48:24.400309
...

我红字有写。

时不时的,设定的时间到了,并没有执行,延迟了20秒左右。才打印 “结束时间”。概率性的发生的,网络绝对没问题的。

网络100M闲置宽带,不会网络有问题的我排查过了。是闲置的。

所以我一直觉得是不是我代码有问题,我也是半吊子,为了这个post特意去搬了这一段代码。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 11:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表