使用BeautifulSoup获取没有类名的个人资料图片

时间:2017-05-15 20:08:19

标签: python beautifulsoup web-crawler

当我学习BeautifulSoup库并尝试抓取网页时,我可以通过限制以下属性来限制搜索结果:a,class name = user-name,可以通过检查HTML源找到。

这是一个成功的例子:

    <a href="https://thenewboston.com/profile.php?user=2" class="user-name">
                                            Bucky Roberts </a>                                            

我很容易说出来

    soup = BeautifulSoup(plain_text,'html.parser')
    for link in soup.findAll('a', {'class': 'user-name'}):

但是,当我尝试获取个人资料照片的链接时,我会通过检查来查看以下代码:

    <div class="panel profile-photo">
        <a href="https://thenewboston.com/profile.php?user=2">
            <img src="/photos/users/2/resized/869b40793dc9aa91a438b1eb6ceeaa96.jpg" alt="">
        </a>
    </div>

在这种情况下,.jpg链接没有任何内容可供参考。现在我该怎么做才能获得每个用户的.jpg链接?

1 个答案:

答案 0 :(得分:2)

您可以使用img元素父元素来创建定位器。我会使用以下CSS selectorimg元素直接匹配a元素直接位于具有profile-photo类的元素下的元素:

soup.select(".profile-photo > a > img")

获取src值:

for image in soup.select(".profile-photo > a > img"):
    print(image['src'])