V2EX zoofy
 zoofy 最近的时间轴更新
zoofy

zoofy

V2EX 第 586509 号会员,加入于 2022-07-01 17:13:12 +08:00
zoofy 最近回复了
要联系方式是吧?好的
2022-09-13 16:40:57 +08:00
回复了 barnett2010 创建的主题 Python 关于故宫紫禁城杂志 pdf 的爬取
@barnett2010 简单写了个下载 pdf 的 demo, 单纯的 requests 请求. 可以自己优化一下

import requests

headers = {
"Referer": "https://www.dpm.org.cn/Public/static/pdfwrap/js/pdf.worker.js",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.33"
}

url = "https://www.dpm.org.cn/Uploads/File/2022/08/29/u630c38230f984.pdf"

resp = requests.get(url, headers=headers)

total_len = int(resp.headers["Content-Length"])

range_int = 65535

loop = total_len // range_int + 1

for i in range(loop):
if i == loop - 1:
exist = True
start = range_int * i + 1
end = total_len
elif i == 0:
exist = False
start = 0
end = range_int
else:
exist = True
start = range_int * i + 1
end = range_int * (i + 1)

headers["Range"] = f"bytes={start}-{end}"

cOntent= requests.get(url, headers=headers).content

if not exist:
with open("a.pdf", "wb") as f:
f.write(content)
else:
with open("a.pdf", "ab") as f:
f.write(content)
加 referer headers 就解决了
2022-07-15 11:48:07 +08:00
回复了 zhishixiang 创建的主题 Python flask socketio 无法向客户端推送消息
@zhishixiang 感觉可以在注册的时候记录好 request.sid 和 request namespace sid 两个 id, 在服务端监听 disconnect 方法,获取到 request.sid 后拿到对应保存的 namespace sid, 然后再做 close room 或者 leave room 操作
2022-07-14 18:50:24 +08:00
回复了 zhishixiang 创建的主题 Python flask socketio 无法向客户端推送消息
@zhishixiang 不一样的,你可以打印看看。我那个代码可以直接允许的了
2022-07-14 18:37:09 +08:00
回复了 zhishixiang 创建的主题 Python flask socketio 无法向客户端推送消息
@zhishixiang 你的 namespace 跟 sid 要和客户端相同的,所以在连接的时候获取到的 sid 传送给服务端,记录好,test 接口才能发信息给客户端。不能在服务端获取啊
2022-07-14 16:27:31 +08:00
回复了 zhishixiang 创建的主题 Python flask socketio 无法向客户端推送消息
给你贴个可以运行的代码
``` 服务端
from flask import Flask
from flask_socketio import SocketIO, emit, join_room
from loguru import logger

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
tokenList = {}


@app.route("/test")
def testConnect():
sid = tokenList["114514"]
data = {'from': 'server'}
# socketio.emit('newMission', data, namespace='/mission')
socketio.emit('newMission', data, to=sid, namespace='/mission')
return 'success'


@socketio.on('register')
def register(data):
sid = data['sid']
print("服务器%s 尝试注册" % data["secret"])
emit('register', {"token": sid})
logger.debug("注册成功,token 为%s" % sid)
join_room(sid)
tokenList["114514"] = sid


@socketio.on('message', namespace='/mission')
def message(data):
print(data) # {'from': 'client'} # emit('response', {'from': 'server'})
# sleep(5)
# emit('response', "exit")


if __name__ == '__main__':
socketio.run(app, debug=True, host='127.0.0.1', port=8090)
```

``` 客户端
import socketio

sio = socketio.Client()


@sio.on('connect')
def on_connect():
print('正在注册,请稍后')
# 获取 namespace sid, 发送给 server
sid = sio.get_sid('/mission')
sio.emit('register', {'secret': '114514', 'sid': sid})


@sio.on('register')
def isReg(data):
print("receiver message from register ,当前 token 为", data['token'])
pass


@sio.on("newMission", namespace='/mission')
def newMission(data):
print("get mission message data: ", data)


sio.connect('ws://localhost:8090')
sio.wait()
```

主要是获取到 namespace 后,把 namespace sid join room, 记录好 sid. 要 emit 的时候, 加上 namespace 和 roomId(sid)进行发送
2022-07-14 14:00:22 +08:00
回复了 u2gign 创建的主题 Python 如何在 celery 异步 task 执行中拿到里面的返回值
看代码感觉是用 django, 可以看下 django-celery-results
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3306 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 12ms UTC 11:15 PVG 19:15 LAX 04:15 JFK 07:15
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86