如何使用HTMLUnit从网站源代码中提取<div data-module-*>里面的HTML元素?

问题描述 投票:0回答:1

我正在尝试通过搜索通用 URL 字符串(如下所示)从教育网站 Udemy 中删除内容(例如课程缩略图、价格等)。该站点的源代码有一个类名为“ud-app-loader ud-component--search--search”的部分。下面提供了它的片段。

废弃数据的网站(搜索查询是 Selenium):Udemy 搜索可用的 selenium 课程

<div class="ud-main-content">
<div class="ud-app-loader ud-component--search--search" data-module-id="search" data-module-args="{&quot;subsCollectionIds&quot;:null,&quot;showSRPRefundNotice&quot;:false,&quot;showUserEnrollmentProgress&quot;:false,&quot;showCodingExerciseCount&quot;:false,&quot;enableLabsInPersonalPlan&quot;:false,&quot;enableLectureBottomDrawerOnSRP&quot;:false,&quot;showCodingExercisesBadge&quot;:false,&quot;enableLectureDiscoveryUnitInUb&quot;:false,&quot;disableRelatedTopicsOnSRP&quot;:false,&quot;enableActiveLearningElementIcons&quot;:false}"></div>
</div>

但是相同的

java html ajax web-scraping htmlunit
1个回答
0
投票

所以我听说您正尝试使用 HTMLUnit 从 Udemy 的 Selenium 课程搜索结果页面中抓取数据,但您很难找到正确的信息。可能是因为数据是通过 AJAX 调用动态加载的,所以您需要找到负责进行这些调用的 URL。

以下是您可以尝试的方法:在 Udemy 上执行搜索时,使用浏览器中的开发人员工具检查网络请求。查找包含所需数据的请求并检查 URL 以查看是否可以调整任何参数以提取更多数据。

找到 AJAX 源 URL 后,您可以使用 HTMLUnit 模拟 AJAX 请求并从响应中提取所需信息。

如果您仍然卡住,可能是数据正在使用不同的机制加载。在这种情况下,您可能需要探索其他抓取工具或技术来获取您需要的数据。

© www.soinside.com 2019 - 2024. All rights reserved.