python - Beautiful Soup 找到第一个 title 属性等于某个字符串的 <a>

标签 python html web-scraping beautifulsoup

我正在处理漂亮的汤,并试图在页面上获取属性等于某个字符串的第一个标签。

例如:

<a href="url" title="export"></a>

我一直试图做的是获取第一个标题为“export”的 href。

  • 如果我使用 soup.select("a[title='export']"),那么我最终会找到满足此要求的所有标签,而不仅仅是第一个。
  • 如果我使用 find("a", {"title":"export"}) 并设置条件使标题应等于“export”,那么它会获取标签内的实际项目,而不是 href。

  • 如果我在调用 find() 之后编写 .get("href"),我将返回 None。

我一直在文档和堆栈溢出中搜索答案,但仍未找到答案。有谁知道这个的解决方案?谢谢!

最佳答案

What I've been trying to do is grab the href of the first that is found whose title is "export".

你快到了。您需要做的就是,一旦您获得了标签,您只需对其进行索引以获取 href。这是一个稍微更防弹的版本:

try:
    url = soup.find('a', {'title' : 'export'})['href']  
    print(url)
except TypeError:
    pass

关于python - Beautiful Soup 找到第一个 title 属性等于某个字符串的 <a>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45307817/

相关文章:

python - Pandas read_html 返回原始 HTML 内容[对于某些行/单元格/等]

javascript - jQuery可变宽度到高度调整与自定义滚动条

jquery - 如何获取父div的类名

javascript - 使用 Cheerio 抓取多个网页

java - 使用 JSoup for Java 从网页中提取特定行

html - 悬停每个元素时如何突出显示所有匹配的元素?

python - 分解 Web 链接并在 Python 中使用 for 循环

python - 按组计算百分位数,然后添加到现有数据框

python - 如何检查 twisted.internet.protocol 实例是否已断开连接

python - 关键字或语句与函数调用之间有什么区别?