首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Nutch登录网站进行抓取

Nutch登录网站进行抓取
EN

Stack Overflow用户
提问于 2018-06-15 14:44:47
回答 1查看 459关注 0票数 1

我需要爬行一个网站https://hl.com的帖子使用坚果,但这个网站要求在某些页面登录。比如个人资料和某些帖子。所以我需要首先认证,我尝试了下面的代码,但它不工作,我得到一个空白的html。

String url="https://hl.com/user/Joanne74";
Connection.Response res =
Jsoup.connect("https://hl.com/login")
.data("email", "email", "password",
"mypassword").method(Method.POST).timeout(0).execute();

Map<String, String> cookies = res.cookies();

Connection connection = Jsoup.connect(url);
org.jsoup.nodes.Document doc = connection.cookies(cookies).timeout(0).get();
EN

回答 1

Stack Overflow用户

发布于 2018-06-16 06:56:39

这个页面很棘手。它在很大程度上依赖于javascript来使用ajax加载动态内容。

  1. 登录表单将用户名和密码发布到https://healthunlocked.com/api/session (而不是https://healthunlocked.com/login)。您可以使用浏览器的调试器进行预览。
  2. 使用.ignoreContentType(true)来避免Exception in thread "main" org.jsoup.UnsupportedMimeTypeException: Unhandled content type.,因为它将JSON作为javascript发送https://healthunlocked.com/user/Joanne74是无用的,因为它只加载一些javascript,但是您可以使用调试器观察对内容的其他请求:https://healthunlocked.com/api/posts?userId=909195https://healthunlocked.com/api/activity?filter=user-activity-public&pageNumber=1&id=909195https://healthunlocked.com/api/profile?username=Joanne74&showPrivateFields=false以获取所需的所有信息,但话又说回来-它是JSON,因此您将需要额外的库而不是jsoup来进一步解析它。

<代码>G215

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50870400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档