2017-05-17 20 views
0

ウェブページには2つのフォームがあります。私は、次のコードを使用して、すべてのフォームとWebページの関連する属性(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) 

しかし唯一のページの最初の形は二回印刷します。フォームとその属性の両方をスクラップする方法は? 注:2にform_count可変インクリメント繰り返しながら、現在のフォームを返す代わりform_listのあなたはそれがページ上で見つかった最初のフォームを返すsoup.find('form')を使用

答えて

0

、、、(ページ内の2つの形態があるように)それらのすべてを通じて。コードは次のようになります

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) 
関連する問題