无法从imacros中的链接中提取文本

时间:2017-07-07 07:01:35

标签: javascript regex imacros

这是我正在提取数据的HTML标记

<div class="rLB">
<div class="propDBlock">
<div class="sepBlock" onclick="trackSearchResultDetails('1', '21', '26617371', 'V', '4442');detailViewTrack('26617371');">
<div class="proBrf">
<a data-id="26617371" class="property-sticky-link" href="/propertyDetails/1-BHK-330-Sq-ft-Multistorey-Apartment-FOR-Sale-Kalyan-in-Thane&id=4d423236363137333731" target="_blank" onclick="stopPage=true;callDetailPropertData('26617371');addViewedPropertyToCookie('26617371',1);detailViewTrack('26617371');clicktrack('1', 'propertyId=26617371,'+'21', 'div'+',sessionId='+sessionId  ,'Sale','Kalyan','Agent','38','Thane' ,'9200','', 'N','11.2 Lac','','1','Multistorey Apartment','','','23','','',false,'','',''); trackPropertyPosition('1', '21', '26617371', 'div')">
<input type="hidden" id="bedroomVal26617371" value="1">
<input type="hidden" id="propertyVal26617371" value="Apartment">
1 BHK Apartment
<span class="noWrapLocality">
for sale in
<span id="localityName26617371" class="localityFirst">Kalyan</span>
<span onclick="stopPage=true;" class="nearByTime"><span id='localitySecond26617371' class="localitySecond"></span>
</span>
</span>
<input type="hidden" id="propertyArea26617371" value="330 sqft">
<b class="areaValue">330&nbsp;sqft</b>
</a>
</div>

我正在使用

TAG POS=2 TYPE=a ATTR=CLASS:property-sticky-link&&TXT:* EXTRACT=TXT
SET VAR1 EVAL("'{{!EXTRACT}}'.match(/propertyDetails/.(.+?)BHK:/);")
PROMPT "VAR1={{VAR1}}"

但它为我提供了“多个”文字"BHK Apartmentfor sale in1 BHK Apartmentfor sale inKalyan1 BHK Apartment1 BHK Apartmentfor sale in1 BHK Apartmentfor sale inKalyan1 BHK Apartmentfor sale in1 BHK Apartmentfor sale inKalyan1 BHK Apartmentfor sale in1 BHK Apartmentfor sale inKalyan1 BHK Apartment1 BHK Apartmentfor sale in1 BHK Apartmentfor sale inKalyan1 BHK Apartmentfor sale in1 BHK Apartmentfor sale inKalyan1 BHK Apartmentfor sale in1 BHK Apartmentfor sale inKalyan690 sqft"

我只想要文字“1 BHK公寓在Kalyan出售”

我对如何解决它有任何想法。提前致谢

1 个答案:

答案 0 :(得分:0)

你走了......我能够找到答案:

SET !EXTRACT NULL
TAG POS=1 TYPE=A ATTR=CLASS:property-sticky-link EXTRACT=TXT
SET LinkText {{!EXTRACT}}
SET !EXTRACT NULL
TAG POS=1 TYPE=B ATTR=CLASS:areaValue EXTRACT=TXT
SET areaValue {{!EXTRACT}}
SET FinalResult EVAL(" var x=\"{{LinkText}}\"; x=x.replace(\"{{areaValue}}\",\"\"); x=x.replace(/\\s/g,' '); x=x.replace(/ {1,}/g,\" \"); x; ")
PROMPT {{FinalResult}}

基本上,我们正在做的是抓取property-sticky-link类定义的链接文本,然后通过areaValue类抓取平方英尺文本。每个人都有自己的&#34;变量&#34; LinkTextareaValue

我们使用EVAL函数来使用javascript的替换方法从LinkText x=x.replace(\"{{areaValue}}\",\"\");中删除平方英尺文本,然后使用一些正则表达式删除空白并用空格替换它们{{1 }}。不幸的是,这导致了一些单词之间的一些双重空格,所以我做了另一个替换来找到双空格并用一个空格替换它们以下x=x.replace(/\\s/g,' ');

最终结果如下: x=x.replace(/ {1,}/g,\" \");

您应该能够使用我的解决方案作为模板提取您寻找的信息。