我正在用 Swift 3.0 编写一个应用程序,我正试图从网页的搜索结果中抓取数据。我通过将搜索查询作为参数包含在 url 中来执行搜索,但是返回给我的 html 没有结果。我相信这是因为网页上的 ajax 尚未完成,并且在 html 返回到我的应用程序时用搜索结果填充了 html。
问题
如何在获取 html 之前等待搜索结果加载?
编辑: 网址:https://uscdirectory.usc.edu/web/directory/faculty-staff/#basic=a
此 url 在 USC 目录中搜索字符“a”。我的 MacBook 浏览器中的 html 包含这些标签:
<tbody>(Search results are here)</tbody>
但在我的应用程序中,返回给我的 html 没有任何内容:
<tbody></tbody>
这是因为网页最初没有搜索结果,然后一段时间后ajax完成并填充了表体。我如何在 Swift 中使用 URLSessionDataTask 对象来等待 ajax 完成,然后才给我 html,以便我真正获得搜索结果?
最佳答案
我设计的变通解决方案令人不快,但很实用。我在屏幕外创建了一个 WKWebView 并加载了我感兴趣的网页。我使用计时器等待任意秒数让页面上的 javascript 完成,然后我从 webview 检索 html
关于html - 网页上的ajax完成后如何从url获取html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42081954/