作为我项目的一部分,我正在执行网络抓取以从网站获取数据。我可以发出请求并获取 dom 中存在的数据。但是,一些数据正在 javascript onClick 函数上呈现。
一种方法是,使用 selenium 单击链接(调用 javascript 函数)并获取呈现的数据,但这个过程很耗时,我不想打开浏览器。
除了硒还有其他方法可以实现这一目标吗?
网站: http ://catalog.fullerton.edu/preview_entity.php?catoid=16&ent_oid=1849
在这个网页的 课程 部分,所有课程都是超链接,只要有人点击课程,就会调用一个 javascript 方法。我需要在 javascript 函数调用后呈现的数据。
原文由 miserable 发布,翻译遵循 CC BY-SA 4.0 许可协议
你不能。如果要运行 JavaScript,则需要使用无头浏览器。否则,您将不得不反汇编 JavaScript 并查看它的作用。
在网络选项卡中打开浏览器的开发人员工具时单击该元素:
您现在可以看到 JavaScript 从该 URL 下载新的 HTML。您可以使用 urllib 轻松发送相同的请求。