网页中有两种表单。我正在尝试使用以下代码废弃网页的所有表单和相关属性(http://demo.testfire.net/feedback.aspx):
import bs4 as bs
import urllib.request
sauce = urllib.request.urlopen("http://demo.testfire.net/feedback.aspx").read()
soup = bs.BeautifulSoup(sauce,"html.parser")
form_count = 0
for form_list in soup.find_all('form'):
form_count+=1
action_value = soup.find('form').get('action')
method_value = soup.find('form').get('method')
id_value = soup.find('form').get('id')
print(form_count, action_value, method_value, id_value)
然而,只有页面的第一种形式被打印两次。如何废弃表单及其属性? 注意:form_count变量递增为2(因为页面中有2个表单)
答案 0 :(得分:0)
使用soup.find('form')
,它返回它在页面上找到的第一个表单,而不是form_list
,它返回当前表单,同时迭代所有表单。您的代码应该是
import bs4 as bs
import urllib.request
sauce = urllib.request.urlopen("http://demo.testfire.net/feedback.aspx").read()
soup = bs.BeautifulSoup(sauce,"html.parser")
form_count = 0
for form_list in soup.find_all('form'):
form_count+=1
action_value = form_list.get('action')
method_value = form_list.get('method')
id_value = form_list.get('id')
print(form_count, action_value, method_value, id_value)