在Web报废中处理类多输入

时间:2017-12-18 17:19:27

标签: python web-scraping beautifulsoup

enter image description here

嗨,我试图废弃值=“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()不起作用,我尝试了其他一些东西但是我被阻止了,是否有一种简单的方法来指定我们要废弃的输入?

2 个答案:

答案 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