我对 html 相当陌生,并且在网络抓取方面遇到了一些挑战。在下面的 html 段落中,我试图在 aria-label 中抓取“Data Scientist II”文本。
<a data-control-id="6XxJ9ssOLIRDcWIL1z8RsQ==" tabindex="0" href="/jobs/view/3887162789/?eBP=NOT_ELIGIBLE_FOR_CHARGING&refId=lrkBiI0LdRr1s7LD5Y1gkA%3D%3D&trackingId=6XxJ9ssOLIRDcWIL1z8RsQ%3D%3D&trk=flagship3_search_srp_jobs" id="ember2564" class="disabled ember-view job-card-container__link job-card-list__title job-card-list__title--link" aria-label="Data Scientist II">
我的代码摘录如下:
job_postings = soup.find_all('li', {'class': 'jobs-search-results__list-item'})
data = []
for job_posting in job_postings:
try:
job_title = job_posting.find('disabled ember-view job-card-container__link job-card-list__title job-card-list__title--link', class_='aria-label').get_text().strip()
但是代码没有产生结果。我怀疑我走在正确的轨道上,可以快速修复所需的最后一行代码。任何对此的帮助将不胜感激。
aria-label
是A标签的属性。要使用 beautifulsoup 获取属性的值,您需要使用
element['attribute_name']
或者在这种情况下
element['aria-label']
你的代码应该是
job_title = job_posting.find('disabled ember-view job-card-container__link job-card-list__title job-card-list__title--link')['aria-label']