Java-如何;“登录”;关于URL对象

Java-如何;“登录”;关于URL对象,java,html,web,Java,Html,Web,我正在尝试创建一个能够跟踪/管理社交媒体关注者的程序,简单的想法是在Java中使用URL对象和BufferedReader,提取字符串并过滤出来,只显示/保留HTML文档中的某些内容。例如在用户帐户上加载以下页面并返回列表中的每个用户,然后检查该列表中的每个帐户是否遵循用户检查 问题是社交媒体网站的某些链接,如twitter.com/username/following,只有在登录到twitter时才可访问,并且在尝试使用URL对象读取时只返回登录页面 我对“Web编程”不是很有经验,但我想知道

我正在尝试创建一个能够跟踪/管理社交媒体关注者的程序,简单的想法是在Java中使用URL对象和BufferedReader,提取字符串并过滤出来,只显示/保留HTML文档中的某些内容。例如在用户帐户上加载以下页面并返回列表中的每个用户,然后检查该列表中的每个帐户是否遵循用户检查

问题是社交媒体网站的某些链接,如twitter.com/username/following,只有在登录到twitter时才可访问,并且在尝试使用URL对象读取时只返回登录页面

我对“Web编程”不是很有经验,但我想知道是否有一种方法可以使用Java中的URL对象或其他方法“登录”,以便它显示我试图加载和提取字符串/数据的正确页面


感谢您提供的任何帮助或资源。

如果网站允许使用基本身份验证登录,您可以将“授权”标题添加到URL请求中

下面的回答已经概述了如何在Java中向请求添加这样的头:

然而,社交媒体网站不支持这种身份验证,使用程序以个人身份登录甚至可能违反服务条款

如果您希望在程序中接收有关用户的信息,则必须从社交媒体网站请求API。这可能是一个用于从他们的站点检索信息的java库,或者是一个记录如何检索信息的模式,通常使用他们在web服务器上提供的RESTAPI

这类代码不需要用户的登录凭据,并且很可能使用名为OAUTH2的标准工作,在该标准中,您的程序通过从用户接收登录密钥(通过用户将其帐户“连接”到您的服务)进行身份验证以检索信息


看看Twitter开发者的页面:

您正在尝试的被称为屏幕抓取技术,由于网页的结构经常发生变化,这种技术天生就容易出错

可以导航到需要登录的URL,您需要准确模拟浏览器在这种情况下的操作,即遵循所有重定向、存储隐藏变量、设置并重新发送cookie、在正确的时间发送用户名和密码

您可以在浏览器中查看网络面板


我假设您使用自己的twitter用户名和密码登录。

使用API客户端库(sdk)与社交平台进行交互要简单得多。欢迎使用Stack Overflow!这个问题似乎不包括任何解决问题的尝试。请编辑问题以显示您尝试了什么,并显示您遇到的具体障碍。有关更多信息,请参阅。oauth还要求最终用户登录并授权此应用程序,除非您拥有超级用户级别的oauth令牌,允许您访问任何twitter用户的帐户,这是不可能的。是的,但该应用程序没有用户的凭据,这是关键。