如何刮取<span title>?

2024-06-26 00:15:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在努力刮真的,当这样做时,我遇到了一个问题。当在一些结果上搜索职位的标题时,我会得到“new”,因为在标记为“new”的职位名称之前有一个跨度。我试过研究和尝试不同的东西,但我仍然没有找到。所以我来寻求帮助。职位名称位于span title标签中,但在某些情况下,当我搜索“span”时,我显然首先得到了“new”,因为它抓住了它看到的第一个span。我试着用几种方法排除它,但没有任何运气

确实是源代码:

<div class="heading4 color-text-primary singleLineTitle tapItem-gutter">
<h2 class="jobTitle jobTitle-color-purple jobTitle-newJob">
<div class="new topLeft holisticNewBlue desktop">
<span class = "label">new</span>
</div>
<span title="Freight Stocker"> Freight Stocker </span>
</h2>
</div>

我尝试过的代码:

import requests
from bs4 import BeautifulSoup

def extract(page):
headers = {''}
url = f'https://www.indeed.com/jobs?l=Bakersfield%2C%20CA&start={page}&vjk=42cee666fbd2fae9'
r = requests.get(url, headers)
soup = BeautifulSoup(r.content, 'html.parser')
return soup

def transform(soup):
divs = soup.find_all('div', class_ = 'heading4 color-text-primary singleLineTitle tapItem-gutter')

for item in divs:
    res = item.find('span').text
    print(res)       
return

c=extract(0)
transform(c)

结果:

新的 小时仓库操作 即时FT/PT打开 服务收银员/收款员 刚出现的 大麻销售代表 刚出现的 刚出现的 刚出现的 刚出现的 新的


Tags: textdiv名称newtitle职位classcolor
1条回答
网友
1楼 · 发布于 2024-06-26 00:15:07

您可以使用CSS选择器.resultContent span[title],它将选择类resultContent中具有title属性的所有<span>

要使用CSS选择器,请使用^{}方法而不是.find()

soup = BeautifulSoup(requests.get(url).content, 'html.parser')

for tag in soup.select(".resultContent span[title]"):
    print(tag.text)

相关问题 更多 >