#javascript
Вопрос:
Я пытаюсь извлечь ссылки из rss-каналов из https://blog.feedspot.com/hr_rss_feeds/
Мне просто нужно запустить скрипт в консоли DevTools и получить результат.
Сценарий, который я придумал, таков
var selects=document.querySelectorAll("p.trow.trow-wrap a");
for (i = 0; i < selects.length; i) {
if (selects[i].getAttribute("rel") === "noopener nofollow")
{
console.log (selects[i].item(1).href);
}
}
Проблема в том, что он получает URL-адрес как RSS-канала, так и сайта
Мне нужны только URL-адреса RSS-канала. Как я могу console.log
первый якорь или selects[i]
(на каждом цикле).
Ответ №1:
Следующее не кажется идеальным, но обеспечивает довольно последовательный результат
const feedLinks = [...document.querySelectorAll("p.trow.trow-wrap")].map(el=>{
return el.querySelector('a').href
})
console.log(feedLinks)
Комментарии:
1. Это близкий к точному ответ. Я получил 129 баллов из 150.
2. Честно говоря, я не очень хотел тратить время на поиск аномалий
3. Не могли бы вы, пожалуйста, объяснить, что делает этот код.
4.
[...doc.queryAll]
Часть превращает<p>
список узлов в массив и совпадает сArray.from(doc.queryAll)
ним . Затем использует Array map() для этих элементов и возвращает href первогоa
в<p>
Ответ №2:
OP здесь код, который работает для меня, это:
var selects=document.querySelectorAll("p.trow.trow-wrap");
for (i = 0; i < selects.length; i) {
console.log (selects[i].querySelectorAll("a")[0].href);
}