Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.security.SecureRandom;
- import java.security.cert.CertificateException;
- import java.security.cert.X509Certificate;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import java.util.Scanner;
- import javax.net.ssl.SSLContext;
- import javax.net.ssl.TrustManager;
- import javax.net.ssl.X509TrustManager;
- import org.apache.http.HttpResponse;
- import org.apache.http.NameValuePair;
- import org.apache.http.client.HttpClient;
- import org.apache.http.client.entity.UrlEncodedFormEntity;
- import org.apache.http.client.methods.HttpGet;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.client.params.ClientPNames;
- import org.apache.http.client.params.CookiePolicy;
- import org.apache.http.conn.ClientConnectionManager;
- import org.apache.http.conn.scheme.Scheme;
- import org.apache.http.conn.scheme.SchemeRegistry;
- import org.apache.http.conn.ssl.SSLSocketFactory;
- import org.apache.http.impl.client.DefaultHttpClient;
- import org.apache.http.impl.conn.BasicClientConnectionManager;
- import org.apache.http.message.BasicNameValuePair;
- public class Test {
- private String YOUR_USERNAME = "some_email_address";
- private String YOUR_PASSWORD = "some_password";
- private String SOME_GUILD_NAME = "some_guild_name";
- private List<Member> fetchGuildMembers() {
- List<Member> guildMembers = new ArrayList<Member>();
- HttpClient httpClient = createLoggedInHttpClient(YOUR_USERNAME, YOUR_PASSWORD);
- HttpGet httpGet = new HttpGet("https://leaderboards.guildwars2.com/en/na/achievements/guild/" + SOME_GUILD_NAME);
- try {
- HttpResponse response = httpClient.execute(httpGet);
- @SuppressWarnings("resource")
- Scanner scanner = new Scanner(response.getEntity().getContent()).useDelimiter("<tr class=");
- scanner.next(); // skip header
- scanner.next(); // skip logged in user
- while (scanner.hasNext()) {
- String tableRow = scanner.next().replaceAll("[\r\n]", " ");
- Member guildMember = new Member();
- guildMember.name = tableRow.replaceAll(".*<td class=\"name text\">([^<]*)</td>.*", "$1").trim();
- guildMember.achievementPoints = Integer.parseInt(tableRow.replaceAll(
- ".*<td class=\"[^\"]*achievements number\">([^>]*>[^>]*>)([^<]*)</span>.*", "$2").trim());
- guildMember.lastLoggedInToGame = tableRow.replaceAll(
- ".*<td class=\"[^\"]*achievements number\">([^>]*>[^>]*>[^>]*>[^>]*>[^S]*Since)([^<]*)</span>.*", "$2").trim();
- guildMember.lastLoggedInToGame = guildMember.lastLoggedInToGame.replaceAll("/", "/");
- guildMember.homeWorld = tableRow.replaceAll(".*<td class=\"world text\">([^<]*)</td>.*", "$1").trim();
- guildMembers.add(guildMember);
- }
- scanner.close();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- httpGet.releaseConnection();
- }
- return guildMembers;
- }
- private HttpClient createLoggedInHttpClient(String email, String password) {
- HttpClient httpClient = new UnsecureHttpClient();
- HttpPost httpPost = new HttpPost("https://account.guildwars2.com/login");
- httpPost.setHeader("X-Requested-With", "XMLHttpRequest");
- httpPost.setHeader("Referer", "https://account.guildwars2.com/login");
- try {
- List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
- nameValuePairs.add(new BasicNameValuePair("email", email));
- nameValuePairs.add(new BasicNameValuePair("password", password));
- httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
- httpClient.execute(httpPost);
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- httpPost.releaseConnection();
- }
- return httpClient;
- }
- public static void main(String[] args) {
- Test ms = new Test();
- List<Member> members = ms.fetchGuildMembers();
- for (Member member : members) {
- System.out.println(member.name + "\t\t" + member.homeWorld + "\t\t" + member.achievementPoints + "\t\t" + member.lastLoggedInToGame);
- }
- }
- private class Member {
- public String name;
- public Integer achievementPoints;
- public String lastLoggedInToGame;
- public String homeWorld;
- }
- private class UnsecureHttpClient extends DefaultHttpClient {
- public UnsecureHttpClient() {
- super(createBasicClientConnectionManager());
- getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);
- }
- private static ClientConnectionManager createBasicClientConnectionManager() {
- BasicClientConnectionManager basicClientConnectionManager = null;
- try {
- SSLContext sslContext = SSLContext.getInstance("SSL");
- sslContext.init(null, new TrustManager[] { new X509TrustManager() {
- @Override
- public X509Certificate[] getAcceptedIssuers() {
- return null;
- }
- @Override
- public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
- }
- @Override
- public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
- }
- } }, new SecureRandom());
- SSLSocketFactory sslSocketFactory = new SSLSocketFactory(sslContext);
- Scheme scheme = new Scheme("https", 443, sslSocketFactory);
- SchemeRegistry schemeRegistry = new SchemeRegistry();
- schemeRegistry.register(scheme);
- basicClientConnectionManager = new BasicClientConnectionManager(schemeRegistry);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return basicClientConnectionManager;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement