我正在尝试为每个选项提取option value
和key
。
不确定我需要指定什么才能正确拉动。任何帮助将不胜感激,提前感谢。
输出我试图获取:
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>
答案 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))