为了账号安全,请及时绑定邮箱和手机立即绑定

使用 JRAW 得到不好的响应

使用 JRAW 得到不好的响应

慕后森 2022-05-25 15:50:21
我正在尝试使用 java 从 reddit 读取数据。我正在使用JRAW。这是我的代码:public class Main {    public static void main(String args[]) {        System.out.println('a');        String username = "dummyName";        UserAgent userAgent = new UserAgent("crawl", "com.example.crawl", "v0.1", username);        Credentials credentials = Credentials.script(username, <password>,<clientID>, <client-secret>);        NetworkAdapter adapter = new OkHttpNetworkAdapter(userAgent);        RedditClient reddit = OAuthHelper.automatic(adapter, credentials);        Account me = reddit.me().about();        System.out.println(me.getName());        SubmissionReference submission = reddit.submission("https://www.reddit.com/r/diabetes/comments/9rlkdm/shady_insurance_work_around_to_pay_for_my_dexcom/");        RootCommentNode rcn = submission.comments();        System.out.println(rcn.getDepth());        System.out.println();//        Submission submission1 = submission.inspect();//        System.out.println(submission1.getSelfText());//        System.out.println(submission1.getUrl());//        System.out.println(submission1.getTitle());//        System.out.println(submission1.getAuthor());//        System.out.println(submission1.getCreated());        System.out.println("-----------------------------------------------------------------");    }}到目前为止,我正在提出两个请求,第一个是reddit.me().about();,第二个是reddit.submission("https://www.reddit.com/r/diabetes/comments/9rlkdm/    shady_insurance_work_around_to_pay_for_my_dexcom/");因为可能是我的第一个请求给了我用户名的响应,但在第二个响应中我收到了错误的请求 400 错误。为了检查我的客户端 ID 和客户端密码是否正常工作,我使用 python PRAW库做了同样的请求。这给出了没有任何错误的所需结果,因此客户端机密详细信息必须正常工作。我唯一的疑问是在 java 中创建用户代理UserAgent userAgent = new UserAgent("crawl", "com.example.crawl", "v0.1", username);。我按照以下链接。究竟是什么target platform, the unique ID or the version意思。我试图保持与链接中相同的格式。也使用与其他地方相同的用户名。另一方面,python 中的 user_agent 是一个字符串crawl。请告诉我是否遗漏了什么以及可能是什么问题。
查看完整描述

1 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

由于您的第一个查询正在运行,因此凭据是正确的。在 JRAW 中不提供整个 URL,而只提供提交函数中的 id。

改变这个

SubmissionReference submission = reddit.submission("https://www.reddit.com/r/diabetes/comments/9rlkdm/shady_insurance_work_around_to_pay_for_my_dexcom/");

对此

SubmissionReference submission = reddit.submission("9rlkdm");

其中 id 是/comment/URL 中的随机字符串。

希望这可以帮助。


查看完整回答
反对 回复 2022-05-25
  • 1 回答
  • 0 关注
  • 61 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信