2017-05-17 29 views
0

網頁中有2種表單。我想放棄使用下面的代碼的網頁(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

您使用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)