首先,检查页面结构的样子:每个列表元素(职位发布)都是列表项 (li),其中包含完整大小的链接 (a)。每个项目还包含代表帖子标题的h2标题:
li -> a
-> div -> h2
所以要同时获取标题和链接,您可以遍历列表项并搜索目标子元素:
Array.from(document.querySelectorAll('li.job-tile')).map(element => ({
title: element.querySelector('h2.job-tile__title').innerText,
link: element.querySelector('a.job-tile__show').href
}))
在哪里
li.job-tile - list item, post tile actually
h2.job-tile__title - header, post title
a.job-tile__show - link, post page URL
这个 sn-p 将返回带有标题和链接的对象数组,如下所示:
[
{
title: 'Application Engineer (Custom Solutions)',
link: 'https://epyz.fa.us2.oraclecloud.com/hcmUI/Candidat…nLevel=city&mode=location&radius=25&radiusUnit=MI'
},
{
title: 'Intern - Custom Solutions (Information Systems)',
link: 'https://epyz.fa.us2.oraclecloud.com/hcmUI/Candidat…nLevel=city&mode=location&radius=25&radiusUnit=MI'
},
...
]
还应注意,您提供的提要包含分页(作为无限滚动),因此像这样的抓取方法将解析仅可见帖子(已加载),而不是所有帖子。