@mrmalinin
мечтатель

Как выбрать элементов из XPath запроса в HTML?

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

<div class="snippet-horizontal   item item_table clearfix js-catalog-item-enum item-with-contact js-item-extended" itemscope="" itemtype="http://schema.org/Product" id="i1874988411" data-item-id="1874988411" data-position="" data-pkey="8c2a63636979eec703q37c77561f4c7eba8daf44d2a4f23bcfcbqf2f5a2q4449adq3abc7cqcf15578c7d302ce897a63936b2c" data-marker="item"> <meta itemprop="description" content="..."> <div class="item__line">
  <div class="item-photo " data-marker="item-photo">
   <a class="item-missing-photo" href="/agalatovo/vakansii/raznorabochiy_1874988411" target="_blank" title="Объявление «Разнорабочий» "> <svg width="38" height="38" viewBox="0 0 38 38" fill="currentColor"> <path d="M16.8794 8.43917C16.8794 13.1005 13.1005 16.8783 8.4402 16.8783C3.77883 16.8783 0 13.1005 0 8.43917C0 3.77779 3.77883 0 8.4402 0C13.1005 0 16.8794 3.77779 16.8794 8.43917Z"></path> <path d="M38 27.7305C38 33.4019 33.4028 37.999 27.7315 37.999C22.0601 37.999 17.4619 33.4019 17.4619 27.7305C17.4619 22.0592 22.0601 17.4631 27.7315 17.4631C33.4028 17.4631 38 22.0592 38 27.7305Z"></path> <path d="M34.3406 8.43876C34.3406 12.0891 31.3812 15.0476 27.7318 15.0476C24.0815 15.0476 21.123 12.0891 21.123 8.43876C21.123 4.78838 24.0815 1.82996 27.7318 1.82996C31.3812 1.82996 34.3406 4.78838 34.3406 8.43876Z"></path> <path d="M13.2181 27.7303C13.2181 30.3697 11.078 32.5088 8.43962 32.5088C5.80025 32.5088 3.66016 30.3697 3.66016 27.7303C3.66016 25.091 5.80025 22.9509 8.43962 22.9509C11.078 22.9509 13.2181 25.091 13.2181 27.7303Z"></path> </svg> </a>
  
<div class="favorites-add is-design-simple js-favorites-add" data-marker="favorites-add">
  <a class="favorites-add__link js-favorites-add-toggle" href="/favorites/add/1874988411" data-event-config="{&quot;id&quot;:1874988411,&quot;active&quot;:false,&quot;categorySlug&quot;:&quot;vakansii&quot;,&quot;rootCategoryId&quot;:110,&quot;access&quot;:{&quot;favorite&quot;:true,&quot;compare&quot;:true},&quot;searchHash&quot;:&quot;htviuo0uiy8ss8444s8gssk00kwkwo4&quot;,&quot;fromPage&quot;:&quot;catalog&quot;,&quot;fromBlock&quot;:null}" title="Добавить в избранное и в сравнение">
 
 <i class="i js-favorites-add-icon i-favorites-big i-favorites_filled-blue" data-state="empty" data-root-category-id="110"> </i> <span class="favorites-add__label pseudo-link js-favorites-add-label">В избранное</span> </a>
 </div>
 </div>
   
 <div class="item_table-wrapper">
  <div class="description item_table-description">
    <div class="snippet-title-row"><h3 class="snippet-title" data-marker="item-title" data-shape="default"><a class="snippet-link" itemprop="url" href="/agalatovo/vakansii/raznorabochiy_1874988411" target="_blank" title="Разнорабочий в Агалатово">Разнорабочий</a></h3></div>    <div class="snippet-price-row"><span class="snippet-price " data-shape="default" data-marker="item-price">
 2 000  ₽
  </span></div>              
 <div class="data">
                  <p>Строительство</p>
   <p>
    </p><div class="item-address">
           <div itemprop="address" itemscope="" itemtype="http://schema.org/PostalAddress"><div class="item-address-georeferences"><span class="item-address-georeferences"><span class="item-address-georeferences-item"><span class="item-address-georeferences-item__content">Агалатово</span></span></span></div><meta itemprop="addressLocality" content="Агалатово"></div>
</div>

 <p></p>
      <div class="snippet-date-row"><div class="snippet-date-info" data-marker="item-date" data-shape="default" data-tooltip="4 мая 12:01" flow="down">
 1 час назад
</div></div>   </div> </div>
  <div class="item_table-aside">
   
<div class="js-item_table-extended-contacts item_table-extended-contacts item_table-extended-contacts_transparent">
    <button style="" class="js-item-extended-contacts
 item-extended-contacts
 
 button button-origin" data-item-id="1874988411" data-iscvsimpletestuser="true" data-item-category-id="111" data-search-hash="htviuo0uiy8ss8444s8gssk00kwkwo4" data-from-block="0" data-marker="item-contact">
 Показать телефон
 </button>
   </div>
  </div>
  </div>
    <div><div class="snippet-vas js-vas-list-container" data-shape="default"></div></div>   </div>
 
</div>


делаю запрос к div и потом дальше хочу добраться до id, но постоянно выдает ошибку, думаю проблема в пробеле.
выглядит это так:
//div [@class='snippet-horizontal   item item_table clearfix js-catalog-item-enum item-with-contact js-item-extended']/id


Уточню вопрос, мне нужно получить уникальное значение по которому будет идти сравнение.
  • Вопрос задан
  • 285 просмотров
Пригласить эксперта
Ответы на вопрос 1
alekciy
@alekciy
Вёбных дел мастер
Для начала нужно точно сформулировать, что требуется достать из html. В приведенном html коде у ссылок (тег а), нет атрибута id. Пробелы в понимании XPath поможет закрыть это видео: XPath это сильно!

Второй аспект. Если страница грузиться через Google таблицы, то это вероятнее не будет работать по причинам указанным тут: В чем ошибка при запросе данных при помощи importx...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы