AutoIt 3 WebページのJS生成データの収集
1年以上のウェブページのデータ収集をした後、途中で数ヶ月止まって、今日マネージャーは1つの任務を説明して、収集しますhttp://www.365rili.com/huangliQuery.html 2011年1月1日は旧暦11月廿七 庚寅年戊子月丙辰日」.最初は自作のウェブページAPIで採集できると思っていたが、ソースコードを分析したところ、中のデータはすべてJSで動的に生成されており、現在のウェブページ解析クラスライブラリではそのウェブページのデータを取得するのは難しく、htmlutil APIを使用してjsエンジンを起動し、マウスイベントをシミュレートしても、そのウェブページのデータを採集するのは難しいことが分かった. キースプライトソフトウェアには、Web分析ツール「Webキースプライト」があり、Webロード後のソースコードを分析したり、Autoit 3がIEブラウザを操作したりできるので、JSで生成されたデータもよく収集できます.以下は私がこのページJSデータを収集する準備とソースコードです. 準備は:windowシステム、ieブラウザ、Webボタンの精霊、autoit 3の4つの部分がクラスvbコードを書くことで、autoit上で実行することができます.コンソールに収集した「旧暦の日付」情報を印刷できます. ソース:
注意:(1)ソースコードはwindowプラットフォームでのみ実行でき、ieブラウザをインストールする必要があります.(2)Webボタンスプライトはボタンスプライトのサブソフトであり,ここではロードされたWebページを解析するために用いられ,idやname属性が設定されていないタグを特定すると,Webボタンスプライト上のWebページの解析とF 9を押すだけでWebページの解析を開始することができ,各タグのページ番号をよく知ることができる.(3)autoit 3プログラムはexeファイルを送信できず、windowプラットフォームで実行できます.(4)autoit 3とボタン精霊はいずれもソフトウェアであるが,それぞれ偏重があり,autoitはオフィスの自動化に偏り,ボタン精霊はゲームの自動化に偏る.(5)autoit 3の機能はとても強くて、私はただそのデータ収集の方面の応用に専念します.
; 2011 :1 1 11
#include <IE.au3>
; IE , , , , ,
$oIE = _IECreate ("http://www.365rili.com/huangliQuery.html",1,1,1,0)
; INPUT DIV DOC
$oButtons = _IETagNameGetCollection ($oIE, "input")
$oInputs = _IETagNameGetCollection ($oIE, "div")
; ID DOM
$oMonSelect=_IEGetObjById($oIE, "oth_month")
$oDaySelect=_IEGetObjById($oIE, "oth_day")
For $mon=1 to 12
; 11
if $mon<=7 Then
if mod($mon,2)=1 Then
$day=31
Else
if $mon=2 Then
$day=28
Else
$day=30
EndIf
EndIf
else
if mod($mon,2)=0 Then
$day=31
Else
$day=30
EndIf
EndIf
; option
_IEFormElementOptionSelect ($oMonSelect, $mon & "", 1, "byText")
For $today=1 to $day
;
;ConsoleWrite($mon & "-" & $today & @CRLF)
; option
_IEFormElementOptionSelect ($oDaySelect, $today & "", 1, "byText")
;###########################
; input
;###########################
;$oButtons = _IETagNameGetCollection ($oIE, "input")
$j=0;
For $oButton In $oButtons
If $j=0 Then
_IEAction ($oButton, "click")
EndIf
$j=$j+1
Next
;###########################
; div text
;###########################
;$oInputs = _IETagNameGetCollection ($oIE, "div")
$i=0;
For $oInput In $oInputs
If $i=27 Then
ConsoleWrite($mon & "-" & $today &" "&_IEPropertyGet($oInput, "innertext") & @CR)
EndIf
$i=$i+1
Next
Sleep(500); 0.5
Next
Next
;
1-1 11
1-2 11
1-3 11
1-4 12
1-5 12
注意:(1)ソースコードはwindowプラットフォームでのみ実行でき、ieブラウザをインストールする必要があります.(2)Webボタンスプライトはボタンスプライトのサブソフトであり,ここではロードされたWebページを解析するために用いられ,idやname属性が設定されていないタグを特定すると,Webボタンスプライト上のWebページの解析とF 9を押すだけでWebページの解析を開始することができ,各タグのページ番号をよく知ることができる.(3)autoit 3プログラムはexeファイルを送信できず、windowプラットフォームで実行できます.(4)autoit 3とボタン精霊はいずれもソフトウェアであるが,それぞれ偏重があり,autoitはオフィスの自動化に偏り,ボタン精霊はゲームの自動化に偏る.(5)autoit 3の機能はとても強くて、私はただそのデータ収集の方面の応用に専念します.