import org.scribe.builder.ServiceBuilder;
import org.scribe.builder.api.LinkedInApi;
import org.scribe.model.Token;
import org.scribe.oauth.OAuthService;
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.HttpWebConnection;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlPasswordInput;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;
public class LinkedInExample {
private static final String AUTHORIZE_URL = "https://api.linkedin.com/uas/oauth/authorize?oauth_token=";
//private static String PROTECTED_RESOURCE_URL = "http://api.linkedin.com/v1/people/~/connections:(id,last-name)";
private static String PROTECTED_RESOURCE_URL = "http://api.linkedin.com/v1/people/~/network?type=SHAR&scope=self";
public static void main(String[] args) throws Exception
{
//IqTzOCsQ1U_XCXfeTVPTDjwwSq6qvtQNwMVLgy28KlPGNptWdyfFu-zXj8cABDAL
String appkey = ""; //API Key
//QIy3WwQs7x_S_vHgwjsY0YmBhgbDlQpGb4tB2l_jwAdq9hiHUx-7kD_-lcUZmCgs
String appsecret = ""; //API Secret
OAuthService service = new ServiceBuilder()
.provider(LinkedInApi.class)
.apiKey(appkey)
.apiSecret(appsecret)
.build();
// Obtain the Request Token
System.out.println("Fetching the Request Token...");
Token requestToken = service.getRequestToken();
String requestURL = AUTHORIZE_URL + requestToken.getToken();
System.out.println(requestURL);
final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3);
webClient.setJavaScriptEnabled(true);
webClient.setActiveXNative(true);
webClient.setCssEnabled(true);
webClient.setAppletEnabled(true);
HttpWebConnection httpwebconnection = new HttpWebConnection(webClient);
httpwebconnection.setUseInsecureSSL(true);
webClient.setWebConnection(httpwebconnection);
final HtmlPage page = webClient.getPage(requestURL);
//System.err.println(page.asXml());
HtmlTextInput key = (HtmlTextInput)page.getElementById("session_key-oauthAuthorizeForm");
key.setValueAttribute("");//linkedin用户名
System.err.println(key.asXml());
HtmlPasswordInput password = (HtmlPasswordInput)page.getElementById("session_password-oauthAuthorizeForm");
password.setValueAttribute("");//linkedin密码
System.err.println(password.asXml());
HtmlSubmitInput submit = (HtmlSubmitInput)(page.getElementsByName("authorize").get(0));
System.err.println(submit.asXml());
HtmlPage page2 = submit.click();
System.out.println(page2.asXml());
webClient.closeAllWindows();
}
}
-------------------------------------------------------------
1。需要注册才可以。
//API Key
//API Secret
//linkedin用户名
//linkedin密码
2。不知道是什么地方出问题,总是登录不成功,不知道什么原因?请高手指导下,谢了!
出错提示为:
We’re sorry, there was a problem with your request. Please make sure you have cookies enabled and try again.
分享到:
相关推荐
htmlunit java版无界面浏览器 实现网页自动登录利器 官方最新下载 htmlunit 是一款开源的java 页面分析工具,读取页面后,可以有效的使用htmlunit分析页面上的内容。项目可以模拟浏览器运行,被誉为java浏览器的开源...
htmlunit 模拟cookie 存取 cookie值登录 如: wsyyuser.xywy.com Cookie c = new Cookie("wsyyuser.xywy.com", "PHPSESSID", Common.getValue("session_id") );
protocol-htmlunit: 基于Htmlunit实现的AJAX页面Fetcher插件 parse-s2jh: 基于XPath解析页面元素内容; 基于数据库模式输出解析到结构化数据; 对于个别复杂类型AJAX页面定制判断页面加载完成的回调...
HTMLUnit是一个功能强大的Java库,它...通过理解这些依赖包的作用,你可以更好地利用HTMLUnit实现你的目标。在实践中,确保正确地导入这些jar文件,并参考`HtmlunitTest.java`中的示例代码,可以快速上手使用HTMLUnit。
总之,HTMLUnit 2.23提供了一个强大且高效的工具,适用于自动化测试和网页抓取,特别是对于那些依赖JavaScript的动态网站。通过理解和熟练使用这个库,开发者可以构建出精确、灵活的网页数据提取系统。
通常,它会依赖`rhino-1.x.jar`,这是一个开源的JavaScript引擎,实现了ECMAScript标准。Rhino引擎使得HTMLUnit能够理解和运行JavaScript,这对于模拟浏览器行为至关重要。 5. **其他辅助库**: 还有一些其他辅助...
HTMLUnit是一个Java库,它提供了一个无头浏览器模拟器,用于自动化Web页面的测试和交互。这个"htmlunit基本jar包"包含了运行HTMLUnit所需的所有核心组件,无需通过Maven来管理和依赖。这意味着用户可以直接在项目中...
HTMLUnit是一款功能强大的Java库,它模拟了一个无头Web浏览器,允许开发者在没有真实浏览器环境的情况下执行JavaScript,处理Ajax请求,以及与网页进行交互。这个库对于自动化测试、数据抓取和网页爬虫项目非常有用...
2. **JavaScript支持**:HTMLUnit能够理解和执行JavaScript代码,这对于测试动态生成的内容或者依赖JavaScript的网站至关重要。它内置了 Rhino 和 Netty JavaScript 引擎,支持ECMAScript 5.1。 3. **DOM操作**:...
HTMLUnit是一个Java库,它提供了一个无头浏览器模拟器,用于自动化Web页面的导航和交互。这个库在测试、数据抓取以及不需图形用户界面的场景中非常有用。"htmlUnit所需jar包"的标题表明这是一个包含HTMLUnit运行所需...
总的来说,HTMLUnit是一个强大的工具,可以帮助开发者构建高效的Java爬虫,同时提供了对JavaScript支持,使得爬取和交互复杂的动态网站成为可能。结合httpmime库,它可以处理各种HTTP通信需求,为网络爬虫提供全面的...
HTMLUnit是一个Java库,它模拟了一个无头Web浏览器,用于自动化网页测试和...此外,这个源码包也适合那些希望学习Java编程和理解浏览器工作原理的初学者,因为HTMLUnit提供了一个简化版的浏览器实现,便于学习和研究。
3. **数据提取**:对于需要解析JavaScript生成内容的网站,HTMLUnit能提供便利的数据提取能力。 三、API使用示例 1. **创建WebClient**: ```java WebClient webClient = new WebClient(); ``` 2. **设置...
3. JavaScript引擎(如rhino.jar):HTMLUnit使用Rhino引擎来执行JavaScript代码,这是一个开源的JavaScript实现,能够在Java环境中运行。 4. 可能还包括其他辅助库,如httpclient和httpcore,用于处理HTTP请求和...
8. **commons-logging-1.1.1.jar**:Apache Commons Logging是一个日志抽象层,允许在不同的日志实现之间切换,如Log4j或Java内置的日志系统,这对于调试和监控HTMLUnit的行为很有帮助。 9. **xml-apis-1.3.04.jar*...
本项目重点介绍了如何利用htmlunit2.8和jsoup1.7这两个强大的库来实现这一目标。下面我们将深入探讨这两个工具以及它们在数据抓取中的应用。 **htmlunit2.8** HtmlUnit是一个Java库,模仿了一个无头浏览器,能够...
HTMLUnit是一个基于Java的无头Web客户端库,它模拟了一个完整的浏览器,但不涉及实际的图形用户界面。...开发者可以通过解压这个压缩包,导入相应的JAR文件到项目中,然后利用提供的API来实现各种网页操作。
2. **JavaScript支持**:HTMLUnit可以解析和执行JavaScript代码,这对于现代Web应用来说是至关重要的,因为许多动态网页依赖JavaScript来加载内容和实现交互。 3. **DOM操作**:通过HTMLUnit提供的API,开发者可以...
以下是一个简单的示例,展示了如何创建WebClient实例并加载HtmlUnit官方网站的首页: ```java @Test public void homePage() throws Exception { final WebClient webClient = new WebClient(); final ...
- 考虑网站的反爬策略,可能需要登录或使用代理IP。 - 数据清洗和格式化是必要的,以确保Excel文件的可读性。 8. **mainboard-project**: 这可能是项目的名字,可能包含了实现上述功能的源代码。如果需要进一步...