java爬虫怎么抓取js动态生成的内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java爬虫怎么抓取js动态生成的内容相关的知识,希望对你有一定的参考价值。

我用Jsoup写爬虫,一般遇到html返回没有的内容。但是浏览器显示有的内容。都是分析页面的http请求日志。分析页面JS代码来解决。
1、有些页面元素被隐藏起来了->换selector解决
2、有些数据保存在js/json对象中->截取对应的串,分析解决
3、通过api接口调用->伪造请求获得数据
还有一个终极方法
4、使用phantomjs或者casperjs这种headless浏览器
参考技术A 如果评论是通过AJAX显示的,那么抓取有一定难度。你的爬虫需要能够解释JS,并解惑JS的内容。但如果你只针对少数的网站进行抓取,则可以针对这些网站开发专用的蜘蛛。人工分析其JS,从中找到其获取评论的AJAX接口,然后抓之。这样简单。还可以用爬虫操作一个浏览器,通过浏览器的接口获取其运行完成后的显示的内容本回答被提问者采纳 参考技术B 用nodejs+puppeteer,解析dom结构获取,或者直接观察返回数据的接口,看能不能直接调用

怎么爬取网页的动态内容,很多都是js动态生

抓取动态页面有两种常用的方法,一是通过JavaScript逆向工程获取动态数据接口(真实的访问路径),另一种是利用selenium库模拟真实浏览器,获取JavaScript渲染后的内容。但selenium库用起来比较繁琐,抓取速度相对较慢,所以第一种方法日常使用较多。 参考技术A 获取不到动态加载的内容,除非内容直接在html页面了,这就是为什么动态加载的内容,js动态生成的内容不利于seo的原因

以上是关于java爬虫怎么抓取js动态生成的内容的主要内容,如果未能解决你的问题,请参考以下文章

如何用python爬取js动态生成内容的页面

怎么爬取网页的动态内容,很多都是js动态生

为啥浏览器可以保存网页中js动态内容,用java编写的爬虫却无法抓取

如何抓取网页中的动态数据

抓取网站时动态 JS 生成代码

爬虫之抓取js生成的数据