java - Parsing PHP data from HTML webpage with jsoup -


i'm not entirely sure how phrase question or title here goes. using jsoup parse webpage (http://champion.gg/statistics/) , i'm trying grab stats table using code.

public void connect(string url) {     try {         document doc = jsoup.connect(url).useragent("mozilla/5.0 (macintosh; intel mac os x 10_9_2) applewebkit/537.36 (khtml, gecko) chrome/33.0.1750.152 safari/537.36").get();         system.out.println(doc.tostring());         element table = doc.select("table[class=table table-striped]").first();         element tbody = table.select("tbody").first();         iterator<element> rows = tbody.select("tr").iterator();         rows.foreachremaining(row -> {             system.out.println(row.tostring());         });     } catch(ioexception exception) {         if(settings.debug) {             program.logger.log(level.severe, "there error reading document supplied url!", exception);         }         program.alert("error loading webpage!");     } } 

and producing result

<tr ng-repeat="champion in filteredchampions = (championdata | startswith:search.title | filter:rolesort | orderby:[order+sortexpression.sortby,order+sortexpression.lastsortby])">   <td class="rank">{{indexnumber($index, filteredchampions.length)}}</td>   <td ng-class="{'selected-column':determineselected('title')}"> <a href="/champion/{{champion.key}}/{{champion.role}}">    <div class="tsm-tooltip tsm-angular-champion-tt" data-type="champions" data-name="{{champion.key}}" data-id="{{matchupdata}}">     <div class="matchup-champion {{champion.key}}"></div>     <span class="stat-champ-title">{{champion.title}}</span>    </div> </a> </td>   <td class="stats-role-title" ng-class="{'selected-column':determineselected('role')}">{{champion.role}}</td>   <td ng-class="{'selected-column':determineselected('winpercent')}"> <span ng-class="{'top-half': (champion.general.winpercent >= 50), 'bottom-half': (champion.general.winpercent < 50)}">{{champion.general.winpercent}}%</span> </td>   <td ng-class="{'selected-column':determineselected('playpercent')}">{{champion.general.playpercent}}%</td>   <td ng-class="{'selected-column':determineselected('banrate')}">{{champion.general.banrate}}%</td>   <td ng-class="{'selected-column':determineselected('experience')}">{{champion.general.experience}}</td>   <td ng-class="{'selected-column':determineselected('kills')}">{{champion.general.kills}}</td>   <td ng-class="{'selected-column':determineselected('deaths')}">{{champion.general.deaths}}</td>   <td ng-class="{'selected-column':determineselected('assists')}">{{champion.general.assists}}</td>   <td ng-class="{'selected-column':determineselected('largestkillingspree')}">{{champion.general.largestkillingspree}}</td>   <td ng-class="{'selected-column':determineselected('totaldamagedealttochampions')}">{{champion.general.totaldamagedealttochampions}}</td>   <td ng-class="{'selected-column':determineselected('totaldamagetaken')}">{{champion.general.totaldamagetaken}}</td>   <td ng-class="{'selected-column':determineselected('totalheal')}">{{champion.general.totalheal}}</td>   <td ng-class="{'selected-column':determineselected('minionskilled')}">{{champion.general.minionskilled}}</td>   <td ng-class="{'selected-column':determineselected('neutralminionskilledenemyjungle')}">{{champion.general.neutralminionskilledenemyjungle}}</td>   <td ng-class="{'selected-column':determineselected('neutralminionskilledteamjungle')}">{{champion.general.neutralminionskilledteamjungle}}</td>   <td ng-class="{'selected-column':determineselected('goldearned')}">{{champion.general.goldearned}}</td>   <td ng-class="{'selected-column':determineselected('overallposition')}">{{champion.general.overallposition}}</td>   <td ng-class="{'selected-column':determineselected('overallpositionchange')}"><span class="glyphicon" ng-class="{'glyphicon-arrow-up': (champion.general.overallpositionchange > 0), 'glyphicon-arrow-down': (champion.general.overallpositionchange < 0), 'same-position': (champion.general.overallpositionchange === 0)}">{{math.abs(champion.general.overallpositionchange)}}</span></td>  </tr> 

now instead of producing result average amount of kills specific champion has champion.general.kills in result get. how parse page instead of champion.general.kills give actual result such 8?

when comes extracting data out of webpage, have go data is. in case, data still within webpage, good. need go script tag containing data , parse that. now, sample code assumes script tag @ index 11.

public static void main(string[] args) {     try     {         document doc = jsoup                 .connect("http://champion.gg/statistics/")                 .useragent(                         "mozilla/5.0 (macintosh; intel mac os x 10_9_2) applewebkit/537.36 (khtml, gecko) chrome/33.0.1750.152 safari/537.36")                 .get();         system.out.println(doc.tostring());         elements table = doc.select("script");         element script = table.get(11);         parsetext(script);     }     catch (ioexception exception)     {      } }  public static void parsetext(element script) {     string text = ((datanode) script.childnode(0)).tostring().trim();     int index = text.indexof("_id");     while (index > 0)     {         index += 6;// beginning of value         int endquote = text.indexof("\"", index);         string id = text.substring(index, endquote);         index = text.indexof("\"key\":\"", endquote);         endquote = text.indexof("\"", index + 8);         string key = text.substring(index, endquote);         index = text.indexof("\"kills\":", endquote);         endquote = text.indexof(",", index);         string kills = text.substring(index, endquote);         text = text.substring(endquote);         index = text.indexof("_id", index);         system.out.println(id + key + kills);     } } 

output:

5812965753fa9743395ee93a"key":"urgot"kills":6.47

5812965753fa9743395ee93b"key":"aatrox"kills":5.8

5812965753fa9743395ee93d"key":"galio"kills":4.58

5812965753fa9743395ee940"key":"kled"kills":7.3 ...


Comments

Popular posts from this blog

php - How to display all orders for a single product showing the most recent first? Woocommerce -

asp.net - How to correctly use QUERY_STRING in ISAPI rewrite? -

angularjs - How restrict admin panel using in backend laravel and admin panel on angular? -