各位友台,有没有遇到过别人从QRZ发过来了Incoming的QSO请求,但是我完全不记得QSO的时间和波段,盲猜要猜好久。尤其是下面这种,8月份发来的6月份的通联记录,这我天天FT8,上哪翻当天的记录啊(大概率是我R-XX了但是没收到他的RR73)。
平时一般这种情况就给拒绝了,但是今天,好家伙,南非的电台。
手动点点点我是真不想浪费一下午时间点点点。所以我就用了半个下午的时间写了段脚本。
各位友台也可以试试我下面的代码。快速穷举QSO通联时间
一、使用方法
1、准备以下四个参数
1.1、PEER_CALLSIGH
对方的呼号
1.2、DAY
通联的UTC日期
1.3、USERNAME PASSWORD
QRZ网站的用户名和密码
1.4、QSO_ID
按下浏览器F12点击请求的review,在开发者模式下查看
二、运行
代码如下
from urllib import request
from urllib.request import urlopen
from urllib.error import HTTPError,URLError
import ssl
import requests
import json
import socket
PEER_CALLSIGH='ZS1WC'
DAY='2024-06-19'
USERNAME='BI1FQO'
PASSWORD='********'
QSO_ID='1132654299'
USER_HEADER = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate, sdch',
'Accept-Language': 'en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4,zh-TW;q=0.2',
'Connection': 'keep-alive',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36',
'Origin': 'https://logbook.qrz.com',
'Referer': 'https://logbook.qrz.com',
'Upgrade-Insecure-Requests': '1'
}
def login():
try:
postUrl = 'https://www.qrz.com/login'
session = requests.session()
postdata1 = {
'login_ref': 'https://www.qrz.com/',
'username': USERNAME,
'password': PASSWORD,
'2fcode': '',
'target': '/',
'flush': '0'
}
login_resp=session.post(postUrl, data=postdata1, headers=USER_HEADER)
except Exception as err:
raise err
else:
return session
def deal_request_qsl(session):
try:
band_list=['17m','40m','30m','20m','15m','12m','10m','6m']
time_list = [
'00:00', '00:30', '01:00', '01:30', '02:00', '02:30', '03:00', '03:30',
'04:00', '04:30', '05:00', '05:30', '06:00', '06:30', '07:00', '07:30',
'08:00', '08:30', '09:00', '09:30', '10:00', '10:30', '11:00', '11:30',
'12:00', '12:30', '13:00', '13:30', '14:00', '14:30', '15:00', '15:30',
'16:00', '16:30', '17:00', '17:30', '18:00', '18:30', '19:00', '19:30',
'20:00', '20:30', '21:00', '21:30', '22:00', '22:30', '23:00', '23:30','24:00'
]
for band in band_list:
for time in time_list:
getUrl='https://logbook.qrz.com/?op=chconf;call1=BI1FQO;call2=%s;band1=%s;band2=%s;mode1=FT8;mode2=FT8;start_date=%s;start_time=%s;prop_mode=;originqso=%s'%(PEER_CALLSIGH,band,band,DAY,time,QSO_ID)
response1 = session.get(getUrl, headers=USER_HEADER)
result=json.loads(response1.text)
result['band']=band
result['time']=time
result['date']=DAY
print(result)
if result['conf']=='1':
break
if result['conf']=='1':
break
print("找到啦!!!")
except Exception as err:
raise err
def main():
try:
session=login()
deal_request_qsl(session)
except Exception as err:
raise err
if __name__ == '__main__':
main()
保存成.py文件之后,用python3运行。pip缺啥自己看着安装上
三、运行结果
最后一行会抛出碰撞成功的波段和时间,例如下图显示17米波段和14:00的结果
然后把这个结果填写到QRZ的Incoming请求中,一次就中。
搞定
这里是BI1FQO,DMR ID:4606666,希望各位HAM通联愉快!73!