BX2ADE 發表於 2013-10-21 10:26:57

QRZ.COM web UI control

各位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(" ")
    date = ((row.cell(:index , 1)).text.split(" ")).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)

BU2BI 發表於 2013-10-21 11:44:38

雖然看不懂,但還是要支持一下,造福許多友台

BU2BW 發表於 2013-10-21 12:12:19

BU2BI 發表於 2013-10-21 11:44
雖然看不懂,但還是要支持一下,造福許多友台

我就是那個每個月都被造福的電.台

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)) + ">"+row
      print "   "+"<BAND:" + str(len(str(row).upper())) + ">"+str(row).upper()
      print "   "+"<MODE:" + str(len(row)) + ">"+row
      print "   "+"<QSO_DATE:" + str(len(row)) + ">"+str(row)
      print "   "+"<TIME_ON:" + str(len(str(row).replace(":", "")+"00")) + ">"+str(row).replace(":", "")+"00"                                       
      print "   "+"<FREQ:" + str(len(row+"0")) + ">"+row+"0"
      print "<EOR>"
========================================================================
真的是....XD

老派的硬頸精神,就是要手抄

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.


BX2ADE 發表於 2013-10-24 14:47:06

KEN哥,

這樣也是可以的.

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

BV4WG 發表於 2013-10-24 15:02:54

ADE 哥,

我打算設一個 cron job, 每天晚上跑你的 adi_to_qrz_logbook. 可嗎?

BX2ADE 發表於 2013-10-24 16:09:56

可以呀,就好像我以在做的automation test.
每晚自動去check out code from GIT, install , test.....
最後出報告.

BX2ADE 發表於 2013-10-24 16:10:32

我還在想自動要去點掉esql手動點好累...寫好了會再PO出來
頁: [1]
查看完整版本: QRZ.COM web UI control