我试图从Shutterstock中搜索到的页面中收集数据ID。这就是HTML的样子
<i class="i i-lightbox sstk-icon icon-plus-sign js_lightbox_add" data-id="253869514" data-tooltip-title="Add to a lightbox" data-lightboximageid="253869514" data-toggle="modal" data-target=".lightbox-modal" data-track="click.searchResults-saveToLightboxModal" data-original-title="" title=""></i>
我想要存储data-id的值,以便我可以单独打印它们。
此代码例如不起作用,只返回:&#34;无&#34;
url = "https://www.shutterstock.com/search/test?autocomplete_id=&language=en&search_source=&version=llv1&image_type=images&safe=true"
r = requests.get(url)
data = r.text
soup = BeautifulSoup(data)
for n in soup.find_all('i'):
showdata = n.get('data-id')
print showdata
如果我将showdata = n.get(&#39; data-id&#39;)更改为:print n.get(&#39; data-id&#39;) 它将返回所有数据ID,但一起返回。所以我不能单独打印它们
答案 0 :(得分:2)
这样做:
for n in soup.find_all('i'):
showdata = n.get('data-id')
print showdata
您将看到覆盖showdata的迭代,最后一个元素没有类data-id
。
因此,这将为您提供所有非无匹配的列表:
all_data_ids = []
for n in soup.find_all('i'):
showdata = n.get('data-id')
if showdata:
all_data_ids.append(showdata)
print all_data_ids