python从html中提取输入值
嘿,我需要一个特定运费的html,这是html:python从html中提取输入值,python,python-3.x,web-scraping,beautifulsoup,Python,Python 3.x,Web Scraping,Beautifulsoup,嘿,我需要一个特定运费的html,这是html: <ul class="methods" id="shipping-quotes" data-url="/en/webshipper/setshippingquote" data-shipping-fee="£ 12"> <l
<ul class="methods" id="shipping-quotes" data-url="/en/webshipper/setshippingquote" data-shipping-fee="£ 12">
<li class="method-option method-option--shipping">
<div class="method-option__header">
<input
id="shippingrate-8"
name="shippingrate"
type="radio"
value="8"
class="method-option__input shipping-rate"
/>
<label for="shippingrate-8" class="method-option__label">
<span class="method-option__name">UPS Standard UK - Home Delivery (2-4 business days)</span>
<span class="method-option__fee">9 GBP</span>
</label>
</div>
</li>
<li class="method-option method-option--shipping">
<div class="method-option__header">
<input
id="shippingrate-9"
name="shippingrate"
type="radio"
value="9"
class="method-option__input shipping-rate"
/>
<label for="shippingrate-9" class="method-option__label">
<span class="method-option__name">UPS Standard UK - Pick-up Point (2-4 business days)</span>
<span class="method-option__fee">6 GBP</span>
</label>
</div>
</li>
<li class="method-option method-option--shipping">
<div class="method-option__header">
<input
id="shippingrate-15"
name="shippingrate"
type="radio"
value="15"
class="method-option__input shipping-rate"
/>
<label for="shippingrate-15" class="method-option__label">
<span class="method-option__name">UPS Express UK - Home Delivery (2-4 business days)</span>
<span class="method-option__fee">15 GBP</span>
</label>
</div>
</li>
<li class="method-option method-option--shipping">
<div class="method-option__header">
<input
id="shippingrate-29"
name="shippingrate"
type="radio"
value="29"
class="method-option__input shipping-rate"
checked
/>
<label for="shippingrate-29" class="method-option__label">
<span class="method-option__name">UPS Express UK - Pick-up Point (1-3 business days)</span>
<span class="method-option__fee">12 GBP</span>
</label>
</div>
<div class="drop-points" id="drop-points">
<p class="drop-point drop-point--no-result">
No pickup points found near your chosen location
</p>
</div>
</li>
</ul>
-
UPS标准英国-送货上门(2-4个工作日)
9英镑
-
UPS标准英国-取货点(2-4个工作日)
6英镑
-
英国UPS快递-送货上门(2-4个工作日)
15英镑
-
英国UPS快递-取货点(1-3个工作日)
12英镑
在您选择的位置附近未找到取货点
特别是在下面的HTML中,我需要得到值=9,所以我想得到值9。如何使用bs4获取送货上门选项的具体值
如果我不清楚,我指的是价值选择权
在此范围内
<input
id="shippingrate-9"
name="shippingrate"
type="radio"
value="9"
class="method-option__input shipping-rate"
/>
对于“送货上门2-4天”选项。如果您想获取shipping method的输入值(假设您的情况是
UPS Standard UK-取货点(2-4个工作日)
),您可以首先找到所有div
s,然后使用此方法选择一个。所以像这样的东西会起作用:
data = soup.find('ul', attrs={'id': 'shipping-quotes'}).find_all('div', class_='method-option__header')
values = [each.input['value'] for each in data if each.find('span', class_='method-option__name').text == 'UPS Standard UK - Pick-up Point (2-4 business days)']
值将是:
['9']
你没有表现出任何努力,但因为我需要休息
从bs4导入美化组
数据=“”\
-
UPS标准英国-送货上门(2-4个工作日)
9英镑
-
UPS标准英国-取货点(2-4个工作日)
6英镑
-
英国UPS快递-送货上门(2-4个工作日)
15英镑
-
英国UPS快递-取货点(1-3个工作日)
12英镑
在您选择的位置附近找不到取货点
'''
soup=BeautifulSoup(数据'html.parser')
对于汤中的d。选择('div.method-option\uuuuu header'):
rate=d.find('input',{'name':'shippingrate'}).attrs['value']
name=d.find('span',{'class':'method-option__name'})。text
fee=d.find('span',{'class':'method-option\uuuu-fee'})
打印(f“{rate}\t{name}\t{fee}”)
如前所述,您应该能够使用类似于soup.find('input',{'name':'shippingrate')).attrs['value']
。如果获得第一个值,如何获得“送货上门”选项的运费值?使用soup.find_all
和一个循环。你需要阅读,因为你似乎缺乏基本知识,并且在走路之前尝试跑步。我了解“查找所有内容”,但如何在标签中的类之间搜索值?嘿,我如何才能获得值9,而不是值9的配送方法。所以我的意思是我想得到送货上门的价值数字option@MovieClips编辑,检查这是否是您想要的