開啟輔助訪問 按此~保存本站到桌面當捷徑
搜索

本文來自

HF 短波交流版

HF 短波交流版

訂閱|收藏 (1)

請添加對本版塊的簡短描述

精選帖子

QRZ.COM web UI control

[複製鏈接]
29869 BX2ADE 發表於 2013-10-21 10:26:57

請註冊,才可使用更完善的功能唷!

您需要 登錄 才可以下載或查看,沒有帳號?註冊(人工驗證)

x
各位OM相信很多人LOG是利用QRZ.COM做的.

很方便卻有個問題,輸入後就被控制了,想下載要付費.

小弟對web UI control有一點點經驗所以寫了一個小AP在抓UI.

把Code PO在Hamtalk希望能幫助有須要的OM.

其實環境安裝比較煩一點

1.要裝ruby 1.8.7
2.要加裝watir

以下的code功能:就是把logbook的內容抓出來show在console上,操作如下
1.開IE(一定要IE),登入qrz.com
2.進入logbook
3.調整list count數量
4.執行以下的code
5.會一行一行的show出(CSV 檔格式)

XXXXX,20M,JT65,20130505,15:41,14.076
XXXXX,20M,JT65,20130505,15:41,14.076
XXXXX,20M,JT65,20130505,15:41,14.076

==================================================================
require 'rubygems'
require 'watir-classic'
#require 'watir-webdriver'
i = 0
browser = Watir::IE.attach(:url, "http://www.qrz.com/logbook")
browser.table(:index,8).rows.each do |row|
  #JJ2PUG,20M,JT65,20130505,15:41,14.076
  #p row.cell(:index , 1).text
  i = i + 1
  if i > 2
    time = row.cell(:index , 1).text.split(" ")[1][0..4]
    date = ((row.cell(:index , 1)).text.split(" ")[0]).gsub('-','')
    puts row.cell(:index , 3).text+','+ row.cell(:index , 4).text.upcase+','+row.cell(:index , 6).text+','+date+','+time+','+row.cell(:index , 5).text
  end
end
==================================================================

(我有另一個程式把CSV格式轉ADIF->才可以上傳LOTW)

評分

參與人數 1 積分 +50 收起 理由
BV8SH + 50 感謝分享~

查看全部評分

HAM~就是要分享 HAMTalk Club http://www.HAMTalk.asia
BU2BI 發表於 2013-10-21 11:44:38
雖然看不懂,但還是要支持一下,造福許多友台
HAM~就是要分享 HAMTalk Club http://www.HAMTalk.asia
BU2BW 發表於 2013-10-21 12:12:19
BU2BI 發表於 2013-10-21 11:44
雖然看不懂,但還是要支持一下,造福許多友台

我就是那個每個月都被造福的電.台
HAM~就是要分享 HAMTalk Club http://www.HAMTalk.asia
 樓主| BX2ADE 發表於 2013-10-21 16:00:47
本帖最後由 BX2ADE 於 2013-10-21 16:28 編輯

本來不想凸BU2BW的呵..自己跳出來.

他的LOG是用手抄的再由EXCEL整理,再寄給我.

我轉存csv格式後由我的程式產生ADIF檔,再寄還給他.
========================================================================
if __name__ == '__main__':
    input_file_name = "tempcvs.txt"
    file = open(input_file_name)
   
    for line in file.xreadlines():
        row = str(line).strip().replace("\"", "").split(",")
        print "<CALL:" + str(len(row[0])) + ">"+row[0]
        print "   "+"<BAND:" + str(len(str(row[1]).upper())) + ">"+str(row[1]).upper()
        print "   "+"<MODE:" + str(len(row[2])) + ">"+row[2]
        print "   "+"<QSO_DATE:" + str(len(row[3])) + ">"+str(row[3])
        print "   "+"<TIME_ON:" + str(len(str(row[4]).replace(":", "")+"00")) + ">"+str(row[4]).replace(":", "")+"00"                                       
        print "   "+"<FREQ:" + str(len(row[5]+"0")) + ">"+row[5]+"0"
        print "<EOR>"
========================================================================
真的是....XD

老派的硬頸精神,就是要手抄
HAM~就是要分享 HAMTalk Club http://www.HAMTalk.asia
BV4WG 發表於 2013-10-24 14:41:52
BX2ADE 發表於 2013-10-21 16:00
本來不想凸BU2BW的呵..自己跳出來.

他的LOG是用手抄的再由EXCEL整理,再寄給我.

不能怪藍哥啦!  我試著去安裝 Ruby 跟 Watir, 花了幾個晚上, 還是不太通.  
Watirbook 好像有點過時, 我在Windows 7 卡住了, 在 iMac 上還行, Safari 跟 FireFox OK, Google Chrome 則是不行.

既然 Watirbook 上的範例大多是 FireFox, 我決定用 FireFox 在 iMac 上跑 Ruby 跟 Watir.  


HAM~就是要分享 HAMTalk Club http://www.HAMTalk.asia
 樓主| BX2ADE 發表於 2013-10-24 14:47:06
KEN哥,

這樣也是可以的.
HAM~就是要分享 HAMTalk Club http://www.HAMTalk.asia
 樓主| BX2ADE 發表於 2013-10-24 14:57:24
以下是你可能會用到的部份
每一個member function都是一個作用,可以參考一下


====================================================
require 'rubygems'
require 'watir'

class Mrs_ui_handle
  
  def initialize(url)
    @ie = ie = Watir::IE.start(url)
  end
  
  def login
    @ie.text_field(:index , 0).set('admin')
    @ie.text_field(:index , 1).set('0000')
    @ie.button(:index , 0).click
   
  end
  
  def click_zone()
    @ie.link(:index , 3).click
  end

  def click_restart_zone()
    @ie.link(:id , "zone_restart_btn").click
  end
   
  def getznoes
    zone = Array.new()
    table = @ie.table(:index , 0)
    table.rows.each_with_index do |row, index|
      if index > 0
        #parse zone list into a list
        #puts "#{index} zone number : "+row.cell(:index ,0).text
        zone << row.cell(:index ,0).text
      end
    end
    return zone
  end
  
  def click_zone_table(index)
    table = @ie.table(:index , 0)
    table.row(:index,index).cell(:index , 0).click
  end
  
  def getnodes
   
    node = Array.new()
    table = @ie.table(:index , 0)
    table.rows.each_with_index do |row, index|
      if index > 0
        #puts "#{index} node name : "+row.cell(:index ,1).text
        node << row.cell(:index ,1).text
      end
    end
    return node
   
  end
  
  def click_node_table(index)
  end
  
  def logout
    @ie.link(:text,"admin").click
    @ie.link(:text,"Logout").click
  end
  
  def finall
    @ie.close()
  end
  
end
HAM~就是要分享 HAMTalk Club http://www.HAMTalk.asia
BV4WG 發表於 2013-10-24 15:02:54
ADE 哥,

我打算設一個 cron job, 每天晚上跑你的 adi_to_qrz_logbook. 可嗎?
HAM~就是要分享 HAMTalk Club http://www.HAMTalk.asia
 樓主| BX2ADE 發表於 2013-10-24 16:09:56
可以呀,就好像我以在做的automation test.
每晚自動去check out code from GIT, install , test.....
最後出報告.
HAM~就是要分享 HAMTalk Club http://www.HAMTalk.asia
 樓主| BX2ADE 發表於 2013-10-24 16:10:32
我還在想自動要去點掉esql手動點好累...寫好了會再PO出來
HAM~就是要分享 HAMTalk Club http://www.HAMTalk.asia
您需要登錄後才可以回帖 登錄 | 註冊(人工驗證)

本版積分規則

快速回復 返回頂部 返回列表