我有以下代码:
import requests
from bs4 import BeautifulSoup
page = requests.get("https://www.seminuevos.com/usados/-/autos/-/volkswagen")
soup = BeautifulSoup(page.content, "html.parser")
kkt = soup.find_all("div", class_="card hoverable") # mazga
for tag in kkt:
print(tag.find('a', href=True)['href'])
使用此代码,我得到了我想要的链接(仅打印),但是我无法将它们附加到列表中。 如果我使用:
list = []
for tag in kkt:
item = tag.find('a', href=True)['href']
list.append(item)
我收到此错误:
Traceback (most recent call last):
File "<input>", line 3, in <module>
TypeError: 'NoneType' object is not subscriptable
我如何才能将kkt中标签的:的结果附加到列表中,一行一行地添加到项:item = tag.find('a',href = True)['href']? 我也尝试过:
list = [tag.find('a', href=True)['href'] for tag in kkt]
不起作用。
答案 0 :(得分:0)
这是因为div
中并非所有kkt
标记都包含a
标记,因此循环中的find
有时返回None
。对其进行更改,使其看起来像这样:
for tag in kkt:
item = tag.find('a', href=True)
if item:
list.append(item['href'])