python - 如何使用 BeautifulSoup4 仅获取“href”?
问题描述
我试图只从结果中获取链接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&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&candidateFilter=4af15d8991a8"><span class="jobs-u-font--bold">(45 awaiting review)</span></a></div></td>
我想得到什么:
/c#candidates?id=a722443b402&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&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&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&ctx=jobs-tab-view-candidates
您可能需要处理href = "
re.search 内部的间距,因为我看不到标签的外观。但是您需要做的就是从 href 复制确切的文本,直到您希望它工作的链接的第一个字符。
推荐阅读
- javascript - 如何在 md-switch 的两侧放置文本?
- java - 无法使用 apache camel 读取条形码
- python - 无法在 PYcharm-Conda、MacOS Catalina 上安装“TWINT”
- python - 视图 course.views.coursehome 没有返回 HttpResponse 对象。它返回 None 而不是
- attachment - 以编程方式在 MB51 中附加带有 GOS 对象的文件
- java - 当存在外键连接时,带有 Hibernate 的 Spring JPA 处理空子实体
- axapta - 是否可以为 2 个 formDataSourceStr 创建 1 个事件处理程序?X++
- notifications - Electron 中的通知为空
- python - 如何修复 Nginx 缓存 404 - Flask?
- java - 期待 `android:screenOrientation="unspecified"` 或 `"fullSensor"