java - Attemping to manipulate data entry for a web page using jsoup -
i attempting enter data web site. post important snippet of web site here, target web page can found here
the values street address number , street name represented inpnumber
, inpstreet
.
html:
<td width="48"> <input type="text" id="inpnumber" name="inpnumber" class="input" size="5" value="" onkeypress="clearaction(this)" /> </td> <td width="40"> <input type="text" id="inpunit" name="inpunit" class="input" size="4" value="" onkeypress="clearaction(this)" /> </td> <td width="160"> <input type="text" id="inpstreet" name="inpstreet" class="input" size="20" value="" onkeypress="clearaction(this)" /> </td>
only inpstreet
, inpnumber
needed effective query , need enter these values.
what have tried far:
string url = "http://icare.fairfaxcounty.gov/ffxcare/search/commonsearch.aspx?mode=address"; try { connection.response response = jsoup.connect(url) .useragent("mozilla/5.0") .timeout(10 * 10000) .method(connection.method.post) .data("inpnumber", "4127") .data("inpunit", "") .data("inpstreet", "winter harbor") .data("btsearch", "") .data("inpsuffix1", "") .followredirects(true) .execute(); //parse document response document document = response.parse(); system.out.println(" extracting information site "); filewriter fw = new filewriter("doc.html"); bufferedwriter bw = new bufferedwriter(fw); bw.write(document.html()); bw.close(); } catch (exception ex){ ex.printstacktrace(); }
i have tried several variations on above code, including more/less key/pair values (setting , returning "" values found looking @ firebug), looking @ return values , general changes jsoup.connect(url)
call.
the result in doc.html
file original unaltered page. doing wrong?
the information being sent payload , best way use send information using requestbody(string)
. code below tested working.
imports:
import java.io.bufferedwriter; import java.io.filewriter; import org.jsoup.*; import org.jsoup.nodes.document; import org.jsoup.select.elements; import static java.net.urlencoder.encode;
code:
public static void main(string[] args) { string url = "http://icare.fairfaxcounty.gov/ffxcare/search/commonsearch.aspx?mode=address"; string useragent = "mozilla/5.0 (windows nt 6.1; win64; x64; rv:55.0) gecko/20100101 firefox/55.0"; try { // required information validation // note might want make method out of , call whenever need instead of elements inputs = jsoup.connect(url) .useragent(useragent) .get().select("input"); string eventvalidation = encode(inputs.select("#__eventvalidation").attr("value"), "utf-8"); string viewstategen = encode(inputs.select("#__viewstategenerator").attr("value"), "utf-8"); string viewstate = encode(inputs.select("#__viewstate").attr("value"), "utf-8"); int number = 4127; string street = encode("winter harbor", "utf-8"); // not necessary string unit = ""; string suffix = ""; document document = jsoup.connect(url) .useragent(useragent) .requestbody( string.format( "mode=address" + "&__viewstate=%s" + "&__viewstategenerator=%s" + "&__eventvalidation=%s" + "&inpnumber=%d" + "&inpunit=%s" + "&inpstreet=%s" + "&inpsuffix1=%s", viewstate, viewstategen, eventvalidation, number, unit, street, suffix)) .post(); system.out.println("extracting information site..."); filewriter fw = new filewriter("doc.html"); bufferedwriter bw = new bufferedwriter(fw); bw.write(document.html()); bw.close(); system.out.println("done."); } catch (exception ex) { //todo handle exceptions ex.printstacktrace(); } }
Comments
Post a Comment