Parsehubselect节点语法

我试图使用parsehub从网站提取数据。 使用select工具,我能够隔离每个部分的标题标题,但我无法使用alt-click取消select第二个标题行的第一个单元格。 select节点标准改变,但实际select不改变。 有问题的HTML块

<tr> <td width="100%" align="center"> <table width="493"> <tr><td></td></tr> <tr><td colspan="3">&nbsp;</td></tr> <tr bgcolor="#99cc00" height="17"> <th height="17" colspan="3" title="Scratcher Name"><div align="center" class="txt_white_bold">LUCKY 7`S #348</div></th> </tr> <tr bgcolor="#99cc00" height="17"> <th height="17"><div align="center" class="txt_white_bold">Prize Amount</div></th> <th align="right"><div align="center" class="txt_white_bold">Prizes Remaining</div></th> <th align="right"><div align="center" class="txt_white_bold">Total Prizes</div></th> </tr> 

select节点代码如下select1

  { "op": "select", "tag": "TR", "allDescendants": true, "flags": [ { "position": 4 } ] } 

select2

 { "op": "select", "tag": "TH", "position": 1 } 

select3

  { "op": "select", "tag": "DIV", "classes": [ "txt_white_bold" ], "position": 1 } 

目前的产出是

 { "selection1":[ { "extract1":"LUCKY 7`S #348" }, { "extract1":"Prize Amount" }, 

如何select“Scratcher Name”而不是“Prize Amount”?

我的第一个想法是改变“select3”,以selectTH中的标题=“Scratcher名称”的项目,但我没有成功的正确编码。

ParseHub的学习algorithm还没有考虑到所有的属性,所以在一些(相当less见的)情况下,它不会达到你所期望的。 在这种情况下,您始终可以使用css或xpathselect器来手动select所需的元素。

要做到这一点:

  1. 进行任意select
  2. 点击节点详情中的绿色编辑button
  3. 删除除一个之外的所有textareas
  4. 用剩余的textareareplacejson

    { "op": "cssSelect", "selector": "th[title='Scratcher Name'] div.txt_white_bold", "allDescendants": true }

如果您想使用xpath,也可以使用xpathSelect。