如何在 Python 中使用 Beautifulsoup 从 Indeed 搜索中获取所有招聘信息的 href?

Posted

技术标签:

【中文标题】如何在 Python 中使用 Beautifulsoup 从 Indeed 搜索中获取所有招聘信息的 href?【英文标题】:How do I grab the hrefs of all the job postings in a search from Indeed using Beautifulsoup in Python? 【发布时间】:2022-01-19 23:52:33 【问题描述】:

我正在练习使用 Beautifulsoup 并从 Indeed 上抓取数据。我是一个相对新手的 Python 编码器,并且是 Beautifulsoup 的新手,但我已经能够弄清楚我想要做的大部分事情,除了在 Indeed 上的搜索结果中抓取每个职位发布的 href。大部分信息都嵌套在这个 div class="job_seen_beacon" 中,如附图所示:

Indeed Job Posting Example

我需要的 href 就在 a-tag 的正上方(对于第一个帖子,其余帖子的位置相似)。似乎工作链接都具有相似的格式(实际上是 url + /pagead/+唯一标识符)。到目前为止,我已经能够通过以下方式获取这些href中的第一个:

link1 = soup.find('a','class':'tapItem').get('href')

indeed_link='https://indeed.com'

job_full_link=indeed_link + link1

返回:

https://indeed.com/pagead/clk?mo=r&ad=-6NYlbfkN0BYwoYS5IKUNHtA0a2VJhnZaPA0uEqIlEtc2XBlIiwK2z_X_68BR8FDAa4lu8N0xeCPwzwEnA8fXiK4iQSEmPwTPepfI6vD2vAIjZkkxpjBBMQUv338KUlip1EOk09_cn2LwmJdZfFHW0-AI7SZQhu1kIQsWTuRTOsU1vuAYvarCELllpMjt_GHp_65BONysimbVWU32exjeilFXm_q51osn1zTWwhznG16bEYsjNkVT231ngYVuvoC3RBW5qn2IB0yR0T3ppMCF4nVaIMUg2yvjXVLsbdbNYgj_ckFk4jrStGLrXIoTrozdnqm3fxToPHdshPAVD7771cWJDflltxdMjmVEdP2f74y2Gc1IAJBaNtq-GweslVoetCVqneDAWtDx4fDODfUv44tpOPE3rZycEp6SLUjAjcYpUW9qG5AJjaUOIU6MwVxZe6Xi1nECNwvoZrEpYXkCBvC3KbMg4DdMhoni660wPq8oW4DXKuz0ffj50lr_cNu&p=0&fvj=1&vjs=3

对于初学者,我不确定这是最好的方法。该“tapItem”类中还有其他href,所以我觉得我的代码似乎只是在工作,因为那是第一个href。我正在尝试创建一个循环来捕获所有工作链接并附加它们,这是我现在卡住的地方,不知道如何设置它。有什么想法/指针吗?

这是我在 *** 上的第一篇文章,如果我需要添加更多上下文,请告诉我!提前致谢。

【问题讨论】:

【参考方案1】:

注意

find() / select_one()

只返回第一次出现的选择

find_all() / select()

返回可以通过您的选择找到的所有匹配项的结果集

如何解决?

使用find_all() / select() 生成一个可以稍后迭代的结果集

示例

import requests
from bs4 import BeautifulSoup
html = requests.get('https://de.indeed.com/Jobs?q=Data%20Engeneering&from=sug&vjk=7fb07edbe78d1d3a').text
soup = BeautifulSoup(html, 'lxml')

indeed_link='https://indeed.com'
links = [indeed_link+a['href'] for a in soup.select('a.tapItem')]

for link in links:
    do something....

【讨论】:

太棒了,这正是我需要的。非常感谢!

以上是关于如何在 Python 中使用 Beautifulsoup 从 Indeed 搜索中获取所有招聘信息的 href?的主要内容,如果未能解决你的问题,请参考以下文章

Python - 分配打印输出csv

python beautifulsoup获取特定html源码

用python的BeautifulSoup分析html

如何用 Beautifulsoup 解析“数据文本”? [复制]

运行 pub get 时出错:无法重命名目录,因为它正在被另一个进程使用

Linux中安装pip和BeautifulSoup(bs4)