当我学习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链接?
答案 0 :(得分:2)
您可以使用img
元素父元素来创建定位器。我会使用以下CSS selector个img
元素直接匹配a
元素直接位于具有profile-photo
类的元素下的元素:
soup.select(".profile-photo > a > img")
获取src
值:
for image in soup.select(".profile-photo > a > img"):
print(image['src'])