Вы можете иметь имена в массиве в два этапа:
- Выберите теги привязки
<a>...</a>
- Получите их внутренние HTML
Как уже упоминал Дуглас, вы можете использовать XPath, но в этом случае простые CSS-селекторы отлично справятся со своей задачей.Как селектор CSS, многие комбинации могут дать вам якорные теги: #list-section a
, ul a
...
Выберите тот, который подходит вам больше всего и который с наименьшей вероятностью будет тормозить позже.Я рекомендую использовать первый:
const anchorTags = await page.$$("#list-section a")
Что касается получения внутреннего HTML-элемента, этот ТАК вопрос определенно вам поможет.Мой предпочтительный подход состоит в том, чтобы иметь отдельную асинхронную функцию, определенную следующим образом:
async function getInnerHtml(page, target){
const innerHTML = await page.evaluate(el => el.innerHTML, target)
return innerHTML
}
Таким образом, вы могли бы зацикливать свой массив и вызывать его для своих тегов привязки.
Не забывайте, чтовсегда есть много способов построить скребок.Мне кажется, вы слишком сосредоточились на элементе и хотели выбрать его точно .Кроме того, необходимо хорошо понимать селекторы CSS, особенно CSS-комбинаторы .
Cheers