如何使用bs4仅提取电商商品的可用尺码?
提取6pm商品页面可用尺码的解决方案
你之前的代码没区分开可用与不可用尺码的DOM结构,6pm页面里不可用尺码通常带有aria-disabled="true"属性或特定禁用类,可用尺码则没有这些标记。以下是可行的解决代码:
import requests from bs4 import BeautifulSoup url = "https://www.6pm.com/p/gbg-los-angeles-ayvie-slate/product/9479982/color/642?zlfid=192&ref=pd_detail_1_sims_cv" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" } # 请求页面,模拟浏览器避免被拦截 response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, "html.parser") # 遍历所有尺码元素,过滤出可用的 available_sizes = [] size_items = soup.find_all("div", class_=["zna-z", "Ana-z"]) for item in size_items: # 不带禁用属性的即为可用尺码 if not item.get("aria-disabled"): available_sizes.append(item.text.strip()) # 输出你需要的格式 print(" ".join(available_sizes))
补充说明:
- 加
User-Agent是为了模拟正常浏览器请求,防止网站反爬拦截 - 如果后续页面结构变化,可通过浏览器F12开发者工具,对比可用/不可用尺码的DOM差异,调整过滤条件即可
内容的提问来源于stack exchange,提问作者Said Traore
相关产品推荐
相关产品推荐

