如何抓取html

问题描述 投票:0回答:1

我对 html 相当陌生,并且在网络抓取方面遇到了一些挑战。在下面的 html 段落中,我试图在 aria-label 中抓取“Data Scientist II”文本。

<a data-control-id="6XxJ9ssOLIRDcWIL1z8RsQ==" tabindex="0" href="/jobs/view/3887162789/?eBP=NOT_ELIGIBLE_FOR_CHARGING&amp;refId=lrkBiI0LdRr1s7LD5Y1gkA%3D%3D&amp;trackingId=6XxJ9ssOLIRDcWIL1z8RsQ%3D%3D&amp;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()

但是代码没有产生结果。我怀疑我走在正确的轨道上,可以快速修复所需的最后一行代码。任何对此的帮助将不胜感激。

python beautifulsoup
1个回答
0
投票

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']
© www.soinside.com 2019 - 2024. All rights reserved.