Write a program automatically download message, nothing :(

xiaoxiao2021-03-06  43

Just wrote an HTML file parser to generate a simple Element tree, including all elements. Although there are many parsing of HTML's API, just I use a little bit of function, and write it very quickly. Class: HTMLELEMENT, HTMLPARSER, LoginAgent purpose is to use the program to automatically download the message page, use the httpurlconnection post to log in, search all INPUT of LoginForm, just specifically set the user password.

However, after the page is open, the link inside actually wants to POST data, the problem is that the value of INPUT is set, so INPUTSTREAM downloads no value, fainted! ! Nothing.

Package com.forum; import java.io. *; / ** * *

Title: *

Description: *

Copyright: CopyRight (C) 2004 *

Company: * @Author zfzheng Pig God * @version 1.0 * / public class htmlparser {

public static HTMLElement buildHTMLElementFromFile (String fileName) throws IOException {BufferedReader br = new BufferedReader (new InputStreamReader (new FileInputStream (fileName), "GB2312")); String line; StringBuffer result = new StringBuffer (); while ((line = br. Readline ())! = null) {Result.Append (line);} br.close (); return buildhtmlelementfromstring (result.toString ());}

public static HTMLElement buildHTMLElementFromString (String data) {HTMLElement root = new HTMLElement (); HTMLElement parent = root; root.setPrototypeString ( "root node"); HTMLElement e = null; char [] chs = data.toCharArray (); char ch INT i = 0; stringbuffer tagname = new stringbuffer (); boolean incommont = false; boolean tagdefinebegin = false; boolean tagdefinend = false;

While (i && i-2> = 0 && CHS [i -1] == '-' && CHS [I-2] == '-') {// Note End Incommont = False;} Continue;

Switch (ch) {case '<': {IF (i 1 ': {if (tagDefineeend) {// End IF (htmlelement.iscontenttag (tagname.tostring () )) {// can be included, the parent node returns the previous layer IF (Parent.getParent ()! = Null) {// Returns the previous layer parent node Parent = Parent.getParent ();}}} else { TagDefineBegin = false; E.SetPrototypeString (Tagname.toString ()); Parent.addchildren (e); E.SETPARENT (PARENT); if (HTMLELEMENT.ISCONTENTTAG (E.GETTAGNAME ())) {// can contain tag parent = E;} else {tagDefinend = true;}} tagname.setlength (0); Break;} case '/': {IF (i> 0 && chs [i-1] == '<'

{TagDefinend = true; tagname.setlength (0);} Break;} DEFAULT: {if (tagDefineBegin) {tagname.Append (ch);} else.Append (CH);} Break;} } I ;} return root;

public static void main (String [] args) {HTMLParser.buildHTMLElementFromString ( " New Document </ title> <meta name = 'Generator' content = 'EditPlus'> <meta ame =' Author 'content =' '> <meta name =' keywords' content = ''> <meta name = 'description' content = ''> </ head> <body> </ body> </ html> "). Dump ( ); Try {htmlparser.buildhtmlelementFromFile ("d: /bb.htm"). Dumphtml ();} catch (ooException ex) {ex.printstacktrace ();}</p> <p>}</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-75036.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="75036" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.031</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'EeIUL6btDXoffhv21vIh271dsW_2FH8tFDWeAyJqpo2kIgiHVLDSbCqrrQMILKu_2FjvTmzbcfkEeusi_2BAlrPVwsJQ_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>