这是html文本。
<select name="ctl00$ContentPlaceHolder1$ddltype" id="ctl00_ContentPlaceHolder1_ddltype" class="page-heading" style="background-color: rgb(255, 244, 244); width: 125px; outline: 1px solid blue;">
<option value="0">Select Bricks</option>
<option value="brk_A_price">A</option>
<option value="brk_B_price">B</option>
<option value="brk_oth_price">Others</option>
</select>
.
.
.
.
<select name="ctl00$ContentPlaceHolder1$ddlReportOn" id="ctl00_ContentPlaceHolder1_ddlReportOn" class="page-heading" style="background-color:#FFF4F4;width:135px;">
<option value="0">Select Report For</option>
<option value="1">Comparison</option>
<option value="2">Variation</option>
</select>因此,我想从上面的html中提取选项值,即从第一个选择标记中提取brk_A_price、brk_B_price、brk_oth_price,从第二个选择标记中提取1、2。
'code to get brk_A_price,brk_B_price,brk_oth_price
TAG POS=1 TYPE=SELECT ATTR=id:ctl00_ContentPlaceHolder1_ddltype&&TXT:* EXTRACT=HTM
TAG POS R1 TYPE=option ATTR=value&&TXT
'code to get 1, 2
TAG POS=1 TYPE=SELECT ATTR=id:ctl00_ContentPlaceHolder1_ddlReportOn&&TXT:* EXTRACT=HTM
TAG POS R1 TYPE=option ATTR=value&&TXT但是,对于每个下拉列表,我只想更改id属性,但是对于我尝试过的代码,它只能从<option..>标记中提取文本而不是值。
p.s:这是我从中提取数据的站点
任何关于应该做什么改变的建议。任何帮助都将不胜感激。谢谢
发布于 2017-07-31 08:00:25
尝试以下方法:
SET !EXTRACT_TEST_POPUP NO
SET !EXTRACT NULL
TAG POS=1 TYPE=SELECT ATTR=id:ctl00_ContentPlaceHolder1_ddltype&&TXT:* EXTRACT=HTM
SET values1 EVAL("var v = '{{!EXTRACT}}'.match(/value=\"(.+?)\"/g).toString().replace(/value=\"|\"/g, '').split(','); v.shift(); v;")
PROMPT {{values1}}
SET !EXTRACT NULL
TAG POS=1 TYPE=SELECT ATTR=id:ctl00_ContentPlaceHolder1_ddlReportOn&&TXT:* EXTRACT=HTM
SET values2 EVAL("var v = '{{!EXTRACT}}'.match(/value=\"(.+?)\"/g).toString().replace(/value=\"|\"/g, '').split(','); v.shift(); v;")
PROMPT {{values2}}(也许有人会提出一些更简单的建议,但上面发布的代码似乎仍然有效。)
https://stackoverflow.com/questions/45380725
复制相似问题