2017-02-06 5 views
0

こんにちは私はこのウェブサイトからデータを抽出したいと思います:taobao.com 私が必要とするのは、店内の各商品にデータID属性値を抽出することだけです。 私は、データソースはこれでファイルを参照する例を与える:返品引用のみ ''(Imacros)

https://shop122418146.world.taobao.com 
https://shop68989753.world.taobao.com 

をここに私が試したものです。

const L = "\n"; 
const numLines = 3; 


/* --------------------- main --------------------- */ 
for (x = 1; x <= numLines; x++) { 
     iimPlayCode (
       'SET !DATASOURCE E:\\XXX\\Taobao\\TaobaoShop.csv' + L + 
       'SET !DATASOURCE_LINE ' + x + L + 
       //'SET !REPLAYSPEED MEDIUM' + L 
       'URL GOTO={{!COL1}}' + L + 
       'WAIT SECONDS=1' + L + 
       'EVENTS TYPE=KEYPRESS SELECTOR="HTML" KEYS="[40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40]"' + L + 
       'WAIT SECONDS=1' + L 
      ); 
    for (y = 1; ;y++) { 
     iimPlayCode (
       'TAG POS=' + y + ' TYPE=DL ATTR=CLASS:item* EXTRACT=data-id' + L 
      ); 
     if(iimGetLastExtract()=="#EANF#"){ 
      break; 
     } else{ 
      iimPlayCode (
       'SAVEAS TYPE=EXTRACT FOLDER={{!FOLDER_DATASOURCE}}\\Taobao\ FILE=Taobao.csv' + L + 
       'SET !EXTRACT NULL' + L 
      ); 
     } 
    } 
} 

私はそれを動作させるのは簡単かもしれないと思ったが、それだけでこれら

"" 
"" 
"" 
"" 
... 

ようにそれを解決するための任意の提案を返しますか?

答えて

0

Aha! 私はmatch()メソッドを使用して別のアプローチを試みており、シームレスに動作します。

SET !EXTRACT EVAL("'{{!EXTRACT}}'.match(/-*[0-9]+/)") 
+0

これは私に質問を残します。 imacrosはfirefoxのアドオンを使用して属性***から値を抽出することはできませんか?代わりにHTMLを抽出し、必要なデータを抽出する必要があります。 – muflichkamil