1

わかりましたので、ウェブサイトからいくつかの情報をスクレイピングして、11/22 [50%] のような値を解釈しようとしています。値が少なくとも部分文字列のサイズに必要な最小値になることを保証できます。これまでのところ、コードはデータを見つけて抽出し、!VAR1 に設定するように機能しています。しかし、何らかの理由で、ページの入力フィールドに !VAR2 を入れることができません。正しく切り替わり、入力フィールドを見つけて「Extraction Results:」と入力するだけです。

したがって、私の入力は 11/22 [50%] で、11 だけが必要です。したがって、位置 1,2 から文字列を分割して 11 を取得します。

iMacros wiki によると、構文は正しく、マクロは実行されますが、予想される出力が得られないだけです。これは、EVAL 行が原因であると想定しています。誰かが理由を知っていますか?また、説明をいただければ幸いです。

VERSION BUILD=7601105 RECORDER=FX
TAB T=1
'Go to website
URL GOTO=http://xxxxxxxxxxxxxxxxxxxx

'Set tag to refer to next
TAG POS=1 TYPE=TD ATTR=TXT:Nerve:

'Get the relative position of something that cannot be tagged and extract the cell's info
TAG POS=R1 TYPE=TD ATTR=TXT:* EXTRACT=TXT

'Set VAR1 to Extracted info (For debugging)
SET !VAR1 {{!EXTRACT}}

'Issue must be here, this is trying to run javascript substring on the information harvested.
SET !VAR2 EVAL("var s=\"{{!EXTRACT}}\"; s=s.substring(1,2); s;")

"Extract to null value to be referenced later
SET !EXTRACT NULL

'Test VAR2 by going to another page and posting the info in a textbox.
URL GOTO=http://xxxxxxxxxxxxxxxxxxxx
TAG POS=1 TYPE=INPUT ATTR=NAME:search[id] CONTENT=Extraction<SP>results:{{!VAR2}}
4

1 に答える 1

1

使ってみてください

SET !VAR2 EVAL("var s=\"{{!EXTRACT}}\"; s=s.split(\"/\")[0];s;")

String.split()関数は、文字列を配列に分割します。引数として指定したもの(RegExpまたはString)が見つかると、各部分が分離されます。

配列の最初のオブジェクト([0])は、最初の「/」が見つかる前のテキストになります。

それから私return sは、そうeval(); 正しい出力を返します。

于 2013-03-02T19:06:02.070 に答える