使用bs4在类中选择一个标记

时间:2016-09-30 23:05:01

标签: python python-3.x beautifulsoup bs4

我试图获取这部分html的href:

onSaveInstanceState

所以我创建了这个脚本:

FragmentA

但链接,没有找到任何东西。这是因为,课程"标题后的标题"我用bs4选择的,没有属性" href" ...

实际上输出:

<h3 class="post-title entry-title" itemprop="name">
<a href="http://sslproxies24.blogspot.it/2016/10/01-10-16-free-ssl-proxies-1070.html">01-10-16 | Free SSL Proxies (1070)</a>
</h3>

是:

import urllib.request
from bs4 import BeautifulSoup

url = "http://sslproxies24.blogspot.it/"
soup = BeautifulSoup(urllib.request.urlopen(url))
for tag in soup.find_all("h3", "post-title entry-title"):
    links = tag.get("href")

如何选择&#34; a&#34;元素并获取href中的链接?

1 个答案:

答案 0 :(得分:2)

您可以通过获取内部a元素来快速解决它:

for tag in soup.find_all("h3", "post-title entry-title"):
    link = tag.a.get("href")

其中tag.atag.find("a")的快捷方式。

或者,您可以将a元素直接与CSS selector匹配:

for a in soup.select("h3.post-title.entry-title > a"):
    link = a.get("href")

其中dot是属性选择器,>表示直接父子关系

或者,您可以检查itemprop属性而不是类:

for a in soup.select("h3[itemprop=name] > a"):
    link = a.get("href")