嗨,我试图废弃值=“36”,但我不知道如何处理这个类有多个输入的事实。
我的代码如下:
## cdkitchen.com
url= 'http://www.cdkitchen.com/recipes/recs/32/Snowball_Cookies_II54545.shtml'
r = requests.get(url)
page_body = r.text
soup=BeautifulSoup(page_body, 'html.parser')
stat= soup.find('div', class_='col-md-4 col-sm-4 mb-20')
for a in stat.find('form', class_='change-servs-form'):
print(a.get_value())
get_value()不起作用,我尝试了其他一些东西但是我被阻止了,是否有一种简单的方法来指定我们要废弃的输入?
答案 0 :(得分:2)
这是你在beautifulsoup find
方法中{'class': 'classname'}
另外,使用soup.get('attribute')
从给定标记中获取任何属性(value
)。
工作代码:
stat = soup.find('div', {'class': 'col-md-4 col-sm-4 mb-20'})
for a in stat.find('form', {'class': 'change-servs-form'}):
print(a.get('value'))
36
注意:我更喜欢CSS选择器,但我不想对你的代码进行调整。你应该研究一下:)
修改强>
使用CSS选择器,从value
input
标记获取form
attr
stat = soup.find('form', {'class': 'change-servs-form'})
input_tags = stat.select('input')
for a in input_tags:
print(a.get('value'))
36
21411个
改变服务
复位
答案 1 :(得分:0)
另一种方式可能如下所示。使用css选择器:
import requests
from bs4 import BeautifulSoup
res = requests.get('http://www.cdkitchen.com/recipes/recs/32/Snowball_Cookies_II54545.shtml')
soup = BeautifulSoup(res.text, 'lxml')
item_name = '\n'.join([item['value'] for item in soup.select('.change-servs-form input')])
print(item_name)
输出:
36
21411
change servings
reset