网页抓取按钮信息

时间:2018-08-04 17:41:14

标签: python parsing web web-scraping beautifulsoup

我正在尝试从<button data-availability-id="8W1VZ0Q60RBW" .......>标记内部抓取信息,假设我可以使用已知的数据可用性ID对其进行定位。我需要data-title和data-button-title的值,这意味着笔记本电脑的标题和当前配置,均来自同一button标记内。如何使用BeautifulSoup来获得它?

url = https://www.microsoft.com/en-ca/p/huawei-matebook-x-pro-laptop/8n4k86d4j006/4X0P?activetab=pivot:overviewtab

<button data-m="{&quot;cN&quot;:&quot;Sku&quot;,&quot;pid&quot;:&quot;8N4K86D4J006/HB3R/8W1VZ0Q60RBW&quot;,&quot;id&quot;:&quot;nn1c27c1c3c1m1r2a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c27c1c3c1m1r2a2&quot;}" class="c-select-button cli_sku-select-button" name="sku" aria-pressed="false" data-js-selected-text="Intel i5, 256GB SSD Selected" data-js-unselected-text="Intel i5, 256GB SSD Not selected" data-bundleonly="false" data-comingsoon="false" data-notavailable="false" data-sku-id="HB3R" data-availability-id="8W1VZ0Q60RBW" data-title="Huawei Matebook X Pro 53010CBS Laptop" data-button-title="Intel i5, 256GB SSD" data-purchasable="true" data-repurchasable="true" data-trial="false" data-delivery-overlay="" data-inventory-sku-id="QF9-01635" data-inventoried="true" data-usecart="true" data-purchase-method="cart" data-device-serial-number="" data-preorder="false" data-preorder-release-date="" data-cta-display-type="Default" data-max-order-quantity="" data-imageuri="https://img-prod-cms-rt-microsoft-com.akamaized.net/cms/api/am/imageFileData/RE267fU?ver=0ea4&amp;m=6&amp;w=72&amp;h=72&amp;n=t&amp;q=60&amp;o=f&amp;l=t&amp;b=white" data-imagealtext="No Data Available" data-show-findinstore="true" data-in-stock="" data-list-price="1349.1" data-rt-price="1499" data-formatted-list-price="CAD $1,349.10" data-bi-dnt="" data-bi-mto="" aria-checked="false">
                Intel i5, 256GB SSD 
                <span class="cli_sku_price_acc x-hidden" aria-hidden="false">CAD $1,349.10</span>

1 个答案:

答案 0 :(得分:1)

一旦有了BeautifulSoup对象,只需找到按钮并提取所需的属性即可:

button = soup.find('button', {"data-availability-id":'8W1VZ0Q60RBW'})
button['data-title']
#'Huawei Matebook X Pro 53010CBS Laptop'
button['data-button-title']
#'Intel i5, 256GB SSD'