Python: BeautifulSoup - Get an attribute value from the name of a class(从类的名称中获取属性值)

本文介绍了从类的名称中获取属性值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在从网页上抓取项目(有多个这样的项目):

<a class="iusc" style="height:160px;width:233px" m="{"cid":"T0QMbGSZ","purl":"http://www.tti.library.tcu.edu.tw/DERMATOLOGY/mm/mmsa04.htm","murl":"http://www.tti.lcu.edu.tw/mm/img0035.jpg","turl&quot;:&quot;https://tse2.mm.bing.net/th?id=OIP.T0QMbGSZbOpkyXU4ms5SFwEsDI&pid=15.1","md5":"4f440c6c64996cea64c975389ace5217"}" mad="{&quot;turl":"https://tse3.mm.bing.net/th?id=OIP.T0QMbGSZbOpkyXU4ms5EsDI&w=300&h=200&pid=1.1","maw":"300","mah":"200","mid":"C303D7F4BB661CA67E2CED4DB11E9154A0DD330B"}" href="/images/search?view=detailV2&ccid=T0QMbGSZ&amp;id=C303D7F4BB661E2CED4DB11E9154A0DD330B&amp;thid=OIP.T0QMbGSZbOpkyXU4ms5SFwEsDI&amp;q=searchtearm;amp;simid=6080204499593&selectedIndex=162" h="ID=images.5978_5,5125.1" data-focevt="1"><div class="img_cont hoff"><img class="mimg" style="color: rgb(169, 88, 34);" height="160" width="233" src="https://tse3.mm.bing.net/th?id=OIP.T0QMbGSZ4ms5SFwEsDI&w=233&h=160&c=7&qlt=90&o=4&dpr=2&pid=1.7" alt="SW1hZ2UgcmVzdWx0IGZzZGF0YS1ibT0="169" /></div></a>
我想要做的是下载m属性中的图像和与其关联的信息。

为了实现这一点,我尝试了如下操作来获取属性:

links = soup.find_all("a", class_="iusc")

然后,为了获取m属性,我尝试了如下内容:

for a in soup.find_all("m"):
    test = a.text.replace("&quot;" '"')
    metadata = json.loads(test)["murl"]
    print(str(metadata))

但是,这并不完全像预期的那样工作,并且没有打印出任何内容(也没有错误)。

推荐答案

您没有循环访问links列表。试试这个。

links = soup.find_all("a", class_="iusc")

for link in links:
    print(link.get('m'))

这篇关于从类的名称中获取属性值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!