有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

html Java如何“登录”URL对象

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

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

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

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


共 (2) 个答案

  1. # 1 楼答案

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

    下面的答案已经概述了如何在Java中向请求添加这样的头:https://stackoverflow.com/a/5137446

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

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

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

    看看Twitter开发者的页面:https://developer.twitter.com/en/docs/basics/getting-started

  2. # 2 楼答案

    你们正在尝试的是屏幕抓取技术,这是一种固有的容易出错的技术,因为网页的结构经常变化

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

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

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