所以我目前正在尝试仅通过 HTML 元素的内容来获取某个属性。 我知道如何通过同一 HTML 部分中的另一个属性获取一个属性。但这次我需要该部分内容的属性。
“https://www.skatedeluxe.ch/de/adidas-skateboarding-busenitz-vulc-ii-schuh-white-collegiate-navy-bluebird_p155979?cPath=216&value[55][]=744”这是我尝试抓取链接。
所以我试图通过“US 12”获取“data-id”
我试图做的是类似于通过属性获取属性的方式。 这是我的代码:
def carting ():
a = session.get(producturl, headers=headers, proxies=proxy)
soup = BeautifulSoup(a.text, "html.parser")
product_id = soup.find("div", {"class" : "product-grid"})["data-product-id"]
option_id = soup.find("option", {"option" : " US 12"})["data-id"]
print(option_id)
carting()
这就是我得到的:
'NoneType' object is not subscriptable
我知道代码是错误的并且不能像我编写的那样工作,但我不知道我还应该怎么做。 如果您需要更多信息,请询问,我们将不胜感激。 亲切的问候
最佳答案
尝试:
import requests
from bs4 import BeautifulSoup
url = "https://www.skatedeluxe.ch/de/adidas-skateboarding-busenitz-vulc-ii-schuh-white-collegiate-navy-bluebird_p155979?cPath=216&value[55][]=744"
soup = BeautifulSoup(requests.get(url).content, "html.parser")
sizes = soup.select_one("#product-size-chooser")
print(sizes.select_one('option:-soup-contains("US 12")')["data-id"])
打印:
16
关于python - 使用 bs4 webscraping 通过内容获取 HTML 类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74400369/