【发布时间】:2018-07-07 18:59:06
【问题描述】:
我有一个 HTML 标记如下:-
<div class="a b c" some-attribute="1">
<div><div>
</div>
<div class="a b c" some-attribute="2">
<div><div>
</div>
<div class="a b c" some-attribute="3">
<div><div>
</div>
如何获取some-attribute的所有值的列表?
我已经尝试了足够多,但没有得到任何解决方案。
这是我尝试过的。
类似于查找所有href [a['href'] for a in soup.find_all('a', href=True)],我试过这个
[div['some-attribute'] for div in soup.find_all('div', some-attribute=True)] # syntax error
另外,我试过了:-
links = soup.findAll('div', {'class': 'a'})
[link.get('some-attribute') for link in links]
这也行不通。
我哪里错了?或者上述问题的正确解决方案是什么?
【问题讨论】:
-
“不起作用”是什么意思?因为至少最后一个版本works when I try it.
-
第一个不起作用的唯一原因是
some-attribute不是有效的 Python 标识符。帮助说明了处理该问题的两种方法,但由于您已经在下次尝试中使用了这两种方法中的一种,因此您应该已经知道了。 -
@abarnert - 2 种方式。还有什么办法?
-
将该属性键值对转换为 dict 并直接传递该 dict,或者将所有属性键值对(在本例中,只有一个)组合成可以与 @987654329 一起使用的东西@.
-
同时,您是否阅读过the help,或者您是否试图通过查看您在网上找到的随机示例来猜测规则?
标签: python web-scraping beautifulsoup