Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python从html中提取输入值_Python_Python 3.x_Web Scraping_Beautifulsoup - Fatal编程技术网

python从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

嘿,我需要一个特定运费的html,这是html:

<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编辑,检查这是否是您想要的