ぜかまし 发表于 2022-11-18 16:09

Python新手问题(爬数据)

本帖最后由 ぜかまし 于 2022-11-18 21:29 编辑

搞定了,谢谢大家。看看下一次数据出来时能否全自动亏钱
---------------
自学了5年的Python(每年兴趣来了只学2天的那种),最近突然有个想要实现的小项目,却完全不懂怎么实现。

网站上有个表格,表格每个月固定时间更新一次,我根据表格里面数据的大小,来决定股票买入还是卖出,要抢手速。

目前我写出来的程序,可以利用pandas.read_html,将表格某行某列的数据提取,和一个固定的数字比大小,小了就买大了就卖,还挺简单的。

  但是,我写的代码,运行一次只能比一次,然后程序就结束了。这个表格是在每个月固定时间发布一次的。我需要的是,在发布前1分钟开始运行代码,让他一直跑着,每秒跑一次,返回结果给我。因为我也不知道数据会在20:00:01还是20:00:05更新。除非我按Ctrl+C中止,让他一直给我显示实时最新结果。

  但现在我有如下几个问题:
  1. 用什么可以实现我的需求,求关键字
  2. 如果查询间隔设置的过短,上一次的查询结果由于网络堵塞还没有返回,下一次的查询请求已经发出去了,代码会崩么。除了增加间隔,如何避免这种情况。毕竟届时网络堵塞情况是个未知数。
  
 想象中的代码运行起来后应该是这种感觉:
  查询时间:2022-11-18 16:02:15 (这个时间每当发起查询会变化)
  数值: 66.6 (当网站数据更新后这里的数字变化)
  ... 按Ctrl+C中止程序

灰流うらら 发表于 2022-11-18 16:21

1. 死循环
2. 用同步IO

—— 来自 Xiaomi M2007J3SC, Android 11上的 S1Next-鹅版 v2.5.4

Nanachi 发表于 2022-11-18 16:22

我根据表格里面数据的大小,来决定股票买入还是卖出,要抢手速

高频交易?

schneehertz 发表于 2022-11-18 16:29

Python 脚本,你用的应该是request 吧,如果没有特殊处理应该是同步的,不用担心同时发送多个请求的情况

写个while true循环然后用time.sleep 控制循环时间间隔

ぜかまし 发表于 2022-11-18 16:32

Nanachi 发表于 2022-11-18 16:22
高频交易?

哪有那么高级,cpi好就买,cpi就卖,非常简单弱智的策略

nessaj 发表于 2022-11-18 16:47

ぜかまし 发表于 2022-11-18 16:52

schneehertz 发表于 2022-11-18 16:29
Python 脚本,你用的应该是request 吧,如果没有特殊处理应该是同步的,不用担心同时发送多个请求的情况

...

大概思路想通了,想起表头有月份的
while a==11月:
    print(别急,数据还没更新呢)
    重新查询a

但是这样的话,在表格更新前,会print好多行别急
怎样可以只刷新这行,而不是重复显示,这样我就不会眼花了

nessaj 发表于 2022-11-18 17:02

EraserKing 发表于 2022-11-18 17:08

1 最简单就是死循环 sleep 500毫秒之类
2 回调函数里加锁 保证同一时间只有一个能运行

— from Xiaomi MIX 2S, Android 10 of S1 Next Goose v2.5.2-play

すぴぱら 发表于 2022-11-18 19:25

先做一个main loop,然后在里面按时间做逻辑就行了

lvcha 发表于 2022-11-18 19:53

革萌 发表于 2022-11-18 20:41

用 bat 啊

XXX:
       python xxxx.py
GOTO XXX
                        
页: [1]
查看完整版本: Python新手问题(爬数据)