1

私は自分のコードでいくつかのエラーを処理していました。ここにそれがあります:

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
from BeautifulSoup import BeautifulSoup as beatsop
from BeautifulSoup import SoupStrainer as sopstrain
import urllib2

def html_parser(html_data):
    html_proc = beatsop(html_data)
    onlyforms = sopstrain("form")
    forms1 = html_proc.findAll(onlyforms)
    txtinput = forms1.findAll('input', {'type': 'text'})
    #We take the forms that aren't text
    listform = ["radio", "checkbox", "password", "file", "image", "hidden"]
    otrimput = forms1.findAll('input', {'type': listform})
    # we seach for names in text forms
    for e_name in txtinput:
        names = e_name['name']
    #we seach for value in otrimput
    for e_value in otrimput:
        value1 = e_value.get('value')
        if value1:
            pass
        else:
            print('{} there is no value.'.format(e_value))

html_data = urllib2.urlopen("http://www.google.com")
html_parser(html_data)

コードがあり、Google に接続し、フォーム (soupstrainer) を検索します。すべて問題ありませんが、問題は、次のエラーが表示されることです。

txtinput = forms1.findAll('input', {'type': 'text'})
AttributeError: 'ResultSet' object has no attribute 'findAll'

エラーはforms1データがリストであることだと思いますが、コードを変更して機能させる方法がわかりません。

ありがとうございます!

4

1 に答える 1