作为我项目的一部分,我正在执行网络抓取以从网站获取数据。我可以发出请求并获取 dom 中存在的数据。但是,一些数据正在 javascript onClick 函数上呈现。
一种方法是,使用 selenium 单击链接(调用 javascript 函数)并获取呈现的数据,但这个过程很耗时,我不想打开浏览器。
除了 selenium 之外,还有其他方法可以实现这一点吗?
网站:http://catalog.fullerton.edu/preview_entity.php?catoid=16&ent_oid=1849
在该网页的类(class)部分,所有类(class)都是超链接,只要有人点击类(class),就会调用 javascript 方法。我需要在 javascript 函数调用后呈现的数据。
最佳答案
你不能。如果要运行 JavaScript,则需要使用 headless 浏览器。否则,您将不得不反汇编 JavaScript 并查看它的作用。
在网络选项卡中打开浏览器的开发人员工具时单击该元素:
您现在可以看到 JavaScript 从该 URL 下载新的 HTML。您可以使用 urllib 轻松发送相同的请求。
关于javascript - 如何使用 BeautifulSoup 和 Python 调用 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48603339/