我正试图从球员页面中提取球员资源中的球员价值,而且我已经在拉出球员的位置和惯用力以及身高和体重方面遇到了麻烦。
我可以拉出整行但是它的格式很差并且不能用于我最终会做的事情(循环播放器页面并保存到原始名称旁边的表格中)。这是我到目前为止所得到的:
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 :(得分:0)
在您的第一个代码段中,您在TAG POS=R1
中使用相对定位。 Relative positioning需要先前的TAG命令才能找到您没有的下一个位置。这就是为什么你的第一个片段在那条线上失败了。
<p>
<strong>Position</strong>: C •
<strong>Shoots</strong>: Left
</p>
如果您只想在此特定示例中使用'C'和'Left',则可以像在第二个代码段中一样提取整个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