python - 使用 bs4 webscraping 通过内容获取 HTML 类属性

标签 python html web-scraping beautifulsoup python-requests

所以我目前正在尝试仅通过 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”

This is how it looks

我试图做的是类似于通过属性获取属性的方式。 这是我的代码:

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/

相关文章:

html - 如何仅使用 CSS 移动屏幕进行检测

javascript - getElementById() 方法是否不适用于表

python - Django 应用程序 - 使用 UWSGI 或 Phusion Passenger 进行部署

python - 如何从列表末尾删除 None 的所有实例?

javascript - 您如何查看哪个 Javascript 脚本生成了特定的 html 行?

Python CrawlSpider

ASP.NET HttpWebRequest - 从今天开始,被 Amazon 拒绝,出现 503 异常

javascript - 在 Puppeteer 中进行 Web Scraping 时如何处理验证码?

python - Django 反向查找获取最新

python - 如何隐藏 geckodriver 控制台窗口?