json - 通过 Json/HtmlUnit 从网站获取 HTML 或链接
问题描述
我一直在尝试从页面中提取 html 值,例如https://www.qwant.com/?q=cat&t=web但是当我使用 jSoup 或 HtmlUnit 时,我总是得到一个无法与什么相比的基本页面当我通过我的普通浏览器搜索时生成。
我的代码通常可以在其他网站上使用,但是有人可以向我解释为什么当我访问上面的代码时,我没有得到相同的结果?我正在尝试获取页面上的所有 url 值。它与javascript有关吗?
WebClient wb = new WebClient(BrowserVersion.FIREFOX_52);
wb.getPage(url);
wb.waitForBackgroundJavaScript(25000);
System.out.println(wb.getCurrentWindow().getEnclosedPage().getWebResponse().getContentAsString());
解决方案
有些网站不允许您无头地解析它们(出于显而易见的原因)。当我尝试curl
Qwant cat 结果页面时,结果是一个空白页面。
但是您想尝试从 Firefox 切换到 Chrome 作为您的浏览器:无法检测和阻止 Chrome 无头
推荐阅读
- laravel - 使用身份验证尝试时出现问题
- python - 使用 argparse 是否可以使用带有破折号的子解析器?
- r - 根据与字符串匹配的列标题的位置获取行的平均值
- c# - HelpProvider 在某些控件上忽略表单的 HelpTopic
- elasticsearch - ElasticSearch - 如何在“多级”聚合查询中显示附加字段名称?
- c++ - 当元素数量可变时,在向量中从用户那里获取输入
- azure-active-directory - Keycloak 可以为 AD 用户保留身份提供程序会话吗
- javascript - 在不同的屏幕尺寸上显示和隐藏内容
- sql - 替换 SQL 中性能不佳的游标
- c# - 无法更新 HubSpot 中的时间戳属性