2017-09-13 36 views
0

我試圖從玩家頁面中提取曲棍球資源中的球員值,並且我已經找到了拔出球員位置和慣用手以及身高和體重的障礙。相對定位文本提取失敗

我可以拉出整行,但它的格式不好,不適合我最終要做的事(通過播放器頁面循環並保存到原始名稱旁邊的表中)。這是我到目前爲止:

VERSION BUILD=9030808 RECORDER=FX 
TAB T=1 

URL GOTO=https://www.hockey-reference.com/players/d/duchema01.html 


TAG POS=R1 TYPE=STRONG ATTR=TXT:Shoots EXTRACT=TXT 


SAVEAS TYPE=EXTRACT FOLDER=* FILE=nhlplayerrecord_duchema01.csv 

這完全失敗,雖然給文件看起來應該是黃金地段的工作。下面是拉動全行位:

VERSION BUILD=9030808 RECORDER=FX 
TAB T=1 

URL GOTO=https://www.hockey-reference.com/players/d/duchema01.html 

TAG POS=1 TYPE=P ATTR=TXT:* EXTRACT=TXT 
TAG POS=2 TYPE=P ATTR=TXT:* EXTRACT=TXT 

SAVEAS TYPE=EXTRACT FOLDER=* FILE=nhlplayerrecord_duchema01.csv 

什麼我已經錯過了任何意見或我怎麼可能會更好地定位此找到值將是巨大的。

使用Firefox,MAC OSX

感謝

回答

0

在你的第一個片段您使用您TAG POS=R1相對定位。 Relative positioning需要先前的TAG命令才能找到下一個位置,但是,您沒有這個位置。這就是爲什麼你的第一個片段在這一行失敗。


<p> 
<strong>Position</strong>: C •  
<strong>Shoots</strong>: Left 
</p> 

如果你只想要「C」和在這個特定的例子「左」,你在你的第二個片段你可以提取整個P和刪除所有不必要的零件與EVAL聲明。

以下讀取C和Left,並將它們寫入指定的文件,您可以類似地進行高度和重量。

VERSION BUILD=9030808 RECORDER=FX 
TAB T=1 

URL GOTO=https://www.hockey-reference.com/players/d/duchema01.html 

TAG POS=1 TYPE=P ATTR=TXT:* EXTRACT=TXT 

' Create an extract backup, it's overwritten to save data 
SET extract_backup {{!EXTRACT}} 

' Read and save Position 
SET !EXTRACT EVAL("var pos='{{extract_backup}}'.split('•'); pos[0].split(':')[1].replace(/ /g,'');") 
SAVEAS TYPE=EXTRACT FOLDER=* FILE=nhlplayerrecord_duchema01.csv 

' Read and save Shoots 
SET !EXTRACT EVAL("var shoots='{{extract_backup}}'.split('•'); shoots[2].split(':')[1].replace(/ /g,'');") 
SAVEAS TYPE=EXTRACT FOLDER=* FILE=nhlplayerrecord_duchema01.csv