有什么办法可以从同一张图片中抓取各种href?

时间:2019-04-09 07:34:44

标签: python beautifulsoup

我想使用beautifulsoup刮取图像的href。但是,我不知道是否有必要从不同页面的同一图像源中刮除各种不同的href。

例如:

imgsource是/image/download.png

在网络的每个页面中,其/image/download.png具有不同的href

第1页:/image/download.png with href http://www.example.com/number1

第2页:/image/download.png with href http://www.example.com/ABC

以此类推。

我的目的是从整个网站中刮除所有具有相同图像/image/download.png的链接(href)。你能帮我吗?

图片的HTML:

<p><a href="www.example.com/thisislink"><img src="/image/download.png" border="0" /></a></p>

一开始我没有代码,因为我对beautifulsoup不太熟悉,但是我还没有找到可以从同一张图片中删除各种链接的教程。

1 个答案:

答案 0 :(得分:0)

类似这样的东西:

from bs4 import BeautifulSoup 

html_doc = """
     <p><a href="www.example.com/thisislink1"><img src="/image/download.png" border="0" /></a></p> 
     <p><a href="www.example.com/thisislink2"><img src="/image/download.png" border="0" /></a></p> 
     <p><a href="www.example.com/thisislink3"><img src="/image/other.png" border="0" /></a></p>
"""
soup = BeautifulSoup(html_doc, 'html.parser')  

for i in soup.find_all('img',src="/image/download.png"): 
    print(i.find_parent('a', href=True)['href']) 

# Out:                                                                                                                                        
# www.example.com/thisislink1
# www.example.com/thisislink2

首先用特定的img搜索src标签,然后从父标签中提取href