从类的名称中获取属性值

2022-04-18 00:00:00 python beautifulsoup python-3.5

问题描述

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

<a class="iusc" style="height:160px;width:233px" m="{&quot;cid&quot;:&quot;T0QMbGSZ&quot;,&quot;purl&quot;:&quot;http://www.tti.library.tcu.edu.tw/DERMATOLOGY/mm/mmsa04.htm&quot;,&quot;murl&quot;:&quot;http://www.tti.lcu.edu.tw/mm/img0035.jpg&quot;,&quot;turl&quot;:&quot;https://tse2.mm.bing.net/th?id=OIP.T0QMbGSZbOpkyXU4ms5SFwEsDI&amp;pid=15.1&quot;,&quot;md5&quot;:&quot;4f440c6c64996cea64c975389ace5217&quot;}" mad="{&quot;turl&quot;:&quot;https://tse3.mm.bing.net/th?id=OIP.T0QMbGSZbOpkyXU4ms5EsDI&amp;w=300&amp;h=200&amp;pid=1.1&quot;,&quot;maw&quot;:&quot;300&quot;,&quot;mah&quot;:&quot;200&quot;,&quot;mid&quot;:&quot;C303D7F4BB661CA67E2CED4DB11E9154A0DD330B&quot;}" href="/images/search?view=detailV2&amp;ccid=T0QMbGSZ&amp;id=C303D7F4BB661E2CED4DB11E9154A0DD330B&amp;thid=OIP.T0QMbGSZbOpkyXU4ms5SFwEsDI&amp;q=searchtearm;amp;simid=6080204499593&amp;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&amp;w=233&amp;h=160&amp;c=7&amp;qlt=90&amp;o=4&amp;dpr=2&amp;pid=1.7" alt="Image result fsdata-bm="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'))

相关文章