our handle_starttag function is called whenever tag is encountered in particularwe're looking for html input tags and our main processing occurs when we determine that we have found one we begin iterating over the attributes of the tagand if we find the name or value attributeswe associate them in the tag_results dictionary after the html has been processedour bruteforcing class can then replace the username and password fields while leaving the remainder of the fields intact pa there are three primary methods you can implement when using the htmlparser classhandle_starttaghandle_endtagand handle_data the handle_starttag function will be called any time an opening html tag is encounteredand the opposite is true for the handle_endtag functionwhich gets called each time closing html tag is encountered the handle_data function gets called when there is raw text in between tags the function prototypes for each function are slightly differentas followshandle_starttag(selftagattributeshandle_endttag(selftaghandle_data(selfdataa quick example to highlight thispython rockshandle_starttag =tag variable would be "titlehandle_data =data variable would be "python rocks!handle_endtag =tag variable would be "titlewith this very basic understanding of the htmlparser classyou can do things like parse formsfind links for spideringextract all of the pure text for data mining purposesor find all of the images in page to wrap up our joomla brute forcerlet' copy-paste the build_wordlist function from our previous section and add the following codepaste the build_wordlist function here words build_wordlist(wordlist_filebruter_obj bruter(username,wordsbruter_obj run_bruteforce(that' itwe simply pass in the username and our wordlist to our bruter class and watch the magic happen