Python:BeautifulSoup - 从类名中获取属性值
Posted
技术标签:
【中文标题】Python:BeautifulSoup - 从类名中获取属性值【英文标题】:Python: BeautifulSoup - Get an attribute value from the name of a class 【发布时间】:2017-12-22 14:58:54 【问题描述】:我正在从网页中抓取项目(其中有多个):
<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":"https://tse2.mm.bing.net/th?id=OIP.T0QMbGSZbOpkyXU4ms5SFwEsDI&pid=15.1","md5":"4f440c6c64996cea64c975389ace5217"" mad=""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&id=C303D7F4BB661E2CED4DB11E9154A0DD330B&thid=OIP.T0QMbGSZbOpkyXU4ms5SFwEsDI&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);" 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" 169" /></div></a>
我想要做的是在m
属性中下载图像和与之关联的信息。
为此,我尝试了类似的方法来获取属性:
links = soup.find_all("a", class_="iusc")
然后,为了获得m
属性,我尝试了这样的方法:
for a in soup.find_all("m"):
test = a.text.replace(""" '"')
metadata = json.loads(test)["murl"]
print(str(metadata))
但是,这并没有按预期工作,并且没有打印任何内容(也没有错误)。
【问题讨论】:
您确定要遍历m
属性吗?在执行任何其他操作之前尝试打印 a
的值(在循环内)。
@Himal 没有打印出来。我做错了吗?
【参考方案1】:
您没有遍历links
列表。试试这个。
links = soup.find_all("a", class_="iusc")
for link in links:
print(link.get('m'))
【讨论】:
工作就像一个魅力,我肯定是想多了。以上是关于Python:BeautifulSoup - 从类名中获取属性值的主要内容,如果未能解决你的问题,请参考以下文章