Разное содержание на странице Apify Webcrawling - PullRequest
0 голосов
/ 22 октября 2019

У меня есть вопрос о сканировании веб-сайтов с помощью Apify. Я хочу получить следующую информацию с веб-страницы: «Местоположение, область, веб-сайт и электронная почта. Теперь, когда я использую свой код, я получаю правильные данные для нескольких страниц, проблема в том, что порядок информации на каждой странице не одинаков»Например, номер телефона первый на странице и третий номер на другой странице. Есть ли способ найти текст в части кода «dt», поэтому я получаю правильные данные в правом столбце? или есть другой способ решить эту проблему?

это мой код сейчас: const $ = jQuery

if ( request.userData.label === 'Deals'){
const location = $('.info-list dd:nth-of-type(1)').text();
const area = $('.info-list dd:nth-of-type(2)').text();
const website = $('.info-list dd:nth-of-type(4)').text();
const email = $('.info-list dd:nth-of-type(5)').text();

это код HTML:

<dl class="info-list">
<dt>Location</dt><dd>.....</dd><dt>Area</dt><dd>Cape Town CBD</dd><dt>Phone</dt><dd class="number">......</dd><dt>Website</dt><dd><a target="_blank" href=.......>http://15onorangebyautograph.com</a></dd><dt>Email</dt><dd><a href="mailto:africanpride.15onorange@autographhotels.com">africanpride.15onorange@autographhotels.com</a></dd>
</dl>

Спасибо за помощь

1 Ответ

0 голосов
/ 25 октября 2019

Да, с помощью JQuery вы также можете запрашивать текст с помощью [:contains()](https://api.jquery.com/contains-selector/#contains1)

Таким образом, вы можете получить dt, который содержит ключевое слово, а затем следующий - dd, который содержит необходимые данные. :

const location = $('.info-list dt:contains("Location")').next().text();
...