我已经使用 JSOUP 进行抓取,并且它的工作非常完美,直到 ajax 和 javascript 没有发挥它们的作用来显示网页内容。
现在伙计们有任何线索,如何在页面完全加载后抓取那些使用 ajax 或 JavaScript 显示的内容。
提前致谢 !!
您可以将无头浏览器用作PhatomJS。
PhantomJS 是一个可使用 JavaScript API 编写脚本的无头 WebKit。它具有对各种 Web 标准的快速和原生支持:DOM 处理、CSS 选择器、JSON、Canvas 和 SVG。
为了简化您的工作,您可以使用 CapserJS
CasperJS 是 PhatomJS 的伴侣,它带来了极大改进的 API,以简化抓取和自动化工作流程的创建。
当您必须抓取具有动态内容的网站时,这些工具非常有用,例如,在 Javascript 中运行进程后显示内容的网站(有时包括 ajax 调用)。
您可以在此处查看有关 casper 如何工作的示例:
CasperJs and Jquery with chained Selects
你不能直接用 JSoup 来做。你需要一个无头浏览器,这是一件复杂得多的事情。Firefox、Safari 等有无头版本。搜索“headless X”(其中 X 是您要使用的浏览器引擎)应该会找到一些有用的项目。