Невозможно извлечь текст по ссылке в imacros

1

Это теги 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 Квартира на продажу в Калян"

Любая идея о том, как мне это сделать. заранее спасибо

  • 1
    ... это просто дает мне несколько текстов, что на выходе?
  • 1
    Вместо добавления вывода в комментарии переместите его в вопрос (отредактируйте) и примените форматирование для чистого чтения.
Показать ещё 1 комментарий
Теги:
imacros

1 ответ

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}}

В основном, то, что мы делаем, - это захват текста ссылки, как это определено классом areaValue property-sticky-link, а затем захват текста квадратного areaValue через класс areaValue. Каждый из них имеет свой собственный "переменный" LinkText и areaValue.

Мы используем функцию EVAL для использования метода замены javascript для удаления текста квадратного метра из LinkText x=x.replace(\"{{areaValue}}\",\"\"); , а затем некоторое регулярное выражение, чтобы удалить пробелы и заменить их пробелом через x=x.replace(/\\s/g,' '); , К сожалению, это вызвало некоторые двойные пробелы между некоторыми словами, поэтому я делаю другую замену, чтобы найти двойные пробелы и заменить их на одно пространство следующим x=x.replace(/{1,}/g,\" \"); ,

Окончательные результаты станут: 1 BHK Apartment for sale in Kalyan

Вы должны иметь возможность извлекать информацию, которую ищете, используя мое решение в качестве шаблона.

  • 0
    Помогло ли это вообще?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню