gpt4 book ai didi

python - 如何使用 BeautifulSoup4 只获取 "href"?

转载 作者:太空宇宙 更新时间:2023-11-03 20:54:55 25 4
gpt4 key购买 nike

我试图仅从find_all()的结果中获取链接

这是我的代码:

    mydivs = soup.find_all("td", {"class": "candidates"})
for link in mydivs:
print(link)

但它返回:

<td class="candidates"><div><a data-tn-element="view-unread-candidates" data-tn-link="true" href="/c#candidates?id=a722443b402&amp;ctx=jobs-tab-view-candidates">56 candidates</a><br/><a data-tn-element="view-unread-candidates" data-tn-link="true" href="/c#candidates?id=a7b2a139b402&amp;candidateFilter=4af15d8991a8"><span class="jobs-u-font--bold">(45 awaiting review)</span></a></div></td>

我想要得到什么:

/c#candidates?id=a722443b402&amp;ctx=jobs-tab-view-candidates

最佳答案

将 bs4 元素转换为字符串后,您可以使用正则表达式解析 href 和最后一个引号之间的所有内容。

import re

#Rest of imports/code up until your script.

mydivs = soup.find_all("td", {"class": "candidates"})
or link in mydivs:
link_text = str(link)
href_link = re.search('href = "(.+?)"', link_text)
print(href_link.group(1))

下面显示的小示例:

import re

link_text = '<td class = "candidates" > <div > <a data-tn-element = "view-unread-candidates" data-tn-link = "true" href = "/c#candidates?id=a722443b402&amp;ctx=jobs-tab-view-candidates" > 56 candidates < /a > <br/> < a data-tn-element = "view-unread-candidates" data-tn-link = "true" href = "/c#candidates?id=a7b2a139b402&amp;candidateFilter=4af15d8991a8" > <span class = "jobs-u-font--bold" > (45 awaiting review) < /span > </a > </div > </td >'
href_link = re.search('href = "(.+?)"', link_text)
print(href_link.group(1))

输出:

/c#candidates?id=a722443b402&amp;ctx=jobs-tab-view-candidates

您可能需要使用 re.search 内部的 href = " 来处理间距,因为我看不到标签的样子。但您所需要做的就是复制确切的文本从 href 到您希望其起作用的链接的第一个字符。

关于python - 如何使用 BeautifulSoup4 只获取 "href"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56082778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com