从网页中提取选项值和键

时间:2017-11-05 20:50:53

标签: python beautifulsoup

我正在尝试为每个选项提取option valuekey。 不确定我需要指定什么才能正确拉动。任何帮助将不胜感激,提前感谢。

输出我试图获取:

value = ['0', '118868', '118869', '118870', '118871', 'etc']
key = ['Choose color/size', 'US 6/EUR 38,5', 'US 6,5/EUR 39', 'etc']

代码:

s = requests.session()  

response = s.get(product_url, headers=headers)
soup = BeautifulSoup(response.text,'lxml')

# option value
div = soup.find("div",{"id":"product-specifics"})
value = div['option']
print(value)

# Keys
for key in div.items() :
    print(key)

HTML:

            <div id="product-specifics" class="editor-field">

<select id="colorSizeDD">
<option value="0">Choose color/size</option>

    <option value="118868">US 6/EUR 38,5</option>


    <option value="118869">US 6,5/EUR 39</option>


    <option value="118870">US 7/EUR 40</option>


    <option value="118858">US 7,5/EUR 40,5</option>


    <option value="118859">US 8/EUR 41</option>


    <option value="118860">US 8,5/EUR 42</option>


    <option value="118861">US 9/EUR 42,5</option>


    <option value="118862">US 9,5/EUR 43</option>


    <option value="118863">US 10/EUR 44</option>


    <option value="118864">US 10,5/EUR 44,5</option>


    <option value="118865">US 11/EUR 45</option>


    <option value="118867">US 11,5/EUR 45,5</option>


    <option value="118866">US 12/EUR 46</option>


    <option value="118871">US 12,5/EUR 47</option>


    <option value="118872">US 13/EUR 47,5</option>



</select>

            </div>

1 个答案:

答案 0 :(得分:0)

找到行后显示的div

  

div = soup.find(&#34; div&#34;,{&#34; id&#34;:&#34; product-specifics&#34;})

然后,您可以使用

获取选择元素
select = div.find('select')

然后我建议循环使用for循环中select.find_all('option')的所有选项元素。在此循环中,您应使用option['value']获取值,并使用option.getText()获取文本。然后最后按照您的要求打印结果。 这将是最终产品。

select = div.find('select')

value = []
key = []

for option in select.find_all('option'):
    value.append(option['value'])
    key.append(option.getText())

print ("value = " + str(value))
print ("key = " + str(key))