通过Jsoup Java Android登录Twitter
我正在尝试使用Jsoup登录twitter,因为我想抓取我的推文并通过短信发送给我,我知道如何从HTML处理它们,我知道如何通过短信发送它们,我需要登录步骤中的帮助,我无法登录twitter 我尝试的是,在后台处理webview而不使用任何Ui注意:没有应用程序的Ui,但失败了,因为没有Ui无法处理它,我尝试使用以下代码登录Jsoup通过Jsoup Java Android登录Twitter,java,android,twitter,web-scraping,jsoup,Java,Android,Twitter,Web Scraping,Jsoup,我正在尝试使用Jsoup登录twitter,因为我想抓取我的推文并通过短信发送给我,我知道如何从HTML处理它们,我知道如何通过短信发送它们,我需要登录步骤中的帮助,我无法登录twitter 我尝试的是,在后台处理webview而不使用任何Ui注意:没有应用程序的Ui,但失败了,因为没有Ui无法处理它,我尝试使用以下代码登录Jsoup final String usernameKey = "session[username_or_email]"; final String passwordKey
final String usernameKey = "session[username_or_email]";
final String passwordKey = "session[password]";
final String loginFormUrl= "https://mobile.twitter.com/login";
final String loginActionUrl = "https://mobile.twitter.com/sessions";
HashMap<String, String> cookies = new HashMap<>();
HashMap<String, String> formData = new HashMap<>();
Connection.Response loginForm = Jsoup.connect(loginFormUrl)
.userAgent(userAgent)
.method(Connection.Method.GET)
.execute();
cookies.putAll(loginForm.cookies());
doc = Jsoup.connect(loginActionUrl)
.data(usernameKey, username)
.data(passwordKey, password)
.cookies(cookies)
.method(Connection.Method.POST)
.userAgent(userAgent)
.post();
/*
doc = Jsoup.connect(twitterHomePage)
.userAgent(userAgent)
.cookies(loggedIn.cookies())
.timeout(30 * 1000)
.get();
*/
Log.d(TAG, doc.html());
但我没有登录,只获得Twitter登录页面HTML注意:Twitter在通过此方法仅登录2次后就阻止了我的帐户,请自行承担风险 这是我如何让它工作的
Map<String, String> cookies;
Map<String, String> data = new HashMap<String, String>();
Connection.Response loginPageRes = Jsoup.connect(loginFormUrl)
.userAgent(userAgent)
.referrer(refferer)
.timeout(30 * 1000)
.method(Connection.Method.GET)
.followRedirects(true)
.execute();
cookies = loginPageRes.cookies();
data.put(usernameKey, username);
data.put(passwordKey, password);
data.put("remember_me", "1");
data.put("wfa", "1");
data.put("redirect_after_login", "/");
data.put("commit", " Log in ");
data.put("authenticity_token", loginPageRes.parse().select("input[name=authenticity_token]").val());
Connection.Response resPostLogin = Jsoup.connect(loginActionUrl)
.method(Connection.Method.POST)
.userAgent(userAgent)
.referrer(loginFormUrl)
.data(data)
.cookies(cookies)
.timeout(30 * 1000)
.followRedirects(true)
.execute();
doc = resPostLogin.parse();
String timelineText = doc.text();
注意:Twitter在使用此方法仅登录2次后就阻止了我的帐户,请自行承担风险 这是我如何让它工作的
Map<String, String> cookies;
Map<String, String> data = new HashMap<String, String>();
Connection.Response loginPageRes = Jsoup.connect(loginFormUrl)
.userAgent(userAgent)
.referrer(refferer)
.timeout(30 * 1000)
.method(Connection.Method.GET)
.followRedirects(true)
.execute();
cookies = loginPageRes.cookies();
data.put(usernameKey, username);
data.put(passwordKey, password);
data.put("remember_me", "1");
data.put("wfa", "1");
data.put("redirect_after_login", "/");
data.put("commit", " Log in ");
data.put("authenticity_token", loginPageRes.parse().select("input[name=authenticity_token]").val());
Connection.Response resPostLogin = Jsoup.connect(loginActionUrl)
.method(Connection.Method.POST)
.userAgent(userAgent)
.referrer(loginFormUrl)
.data(data)
.cookies(cookies)
.timeout(30 * 1000)
.followRedirects(true)
.execute();
doc = resPostLogin.parse();
String timelineText = doc.text();
我不想通过复制twitter api页面上的代码来重新发明轮子,所以我将只链接如何登录:
对于阅读tweet和其他功能:我不想通过复制twitter api页面上的代码来重新发明轮子,所以我只需链接how-to进行登录:
对于阅读推文和其他功能:你有什么理由不想使用高效完成这项工作的twitter API吗?因为我认为它可以让我的应用程序保持轻量级,但twitter一次又一次阻止我使用jsoup登录我的帐户,我想,现在,我必须使用twitter API,你能给我一个如何使用twitter API的链接吗?你有什么理由不想使用twitter API来有效地完成这项工作吗?因为我认为它可以让我的应用程序保持较小的大小,但twitter一次又一次地阻止我使用jsoup登录我的帐户,我想,现在,我必须使用twitter API,你能给我一个如何使用twitter API的链接吗?我不是一个专业的开发人员,所以我不知道如何在我的UI较少的应用程序中使用这个API你不需要是一个专业的开发人员就可以使用这个API。仅供参考,它可以在没有UI的情况下工作。这是回答您问题的推荐方式。我不是专业开发人员,因此我不知道如何将此api与我的无UI应用程序一起使用您不需要是专业开发人员就可以使用此api。仅供参考,它可以在没有UI的情况下工作。这是回答您问题的推荐方式。