我用Jsoup抓取网页,但是抓取不到js执行后的,哪个帮助下?
我用Jsoup.connect(url+"/"+bqlists.get(j)[0]).timeout(10000).get();抓取到了网页其他信息,但是就是js执行后的...
我用Jsoup.connect(url+"/"+bqlists.get(j)[0]).timeout(10000).get();抓取到了网页其他信息,但是就是js执行后的内容抓取不到,比如网站www.8uu.com中的内容,哪个大哥帮助下
展开
展开全部
JS执行后的结果一般都抓不到吧,除非你的程序运行环境可以模拟浏览器环境,检测到脚本后执行取结果,不然用URL抓页面只能拿到页面上的静态部分。
追问
我看别人说用htmlunit可以抓取到 我抓取的不是固定的网站 有20几个这样的网站 咋搞哦
追答
你说的这种需求在爬虫程序中需求不是太高,所以没考虑过,不过一般的你要是能把浏览器干的事都干了,或者大部分都干了,应该就能解决了,执行js脚本不是问题,java 6本身就携带script执行功能,问题是,怎么实现上下文和dom操作部分,你要是能把这两部分解决了,问题就解决了
htmlunit就是用Rhinojs引擎实现的js执行,你可以参考参考
其实就是一个分析抓到的结果,并执行脚本的过程,比如,找到所有用script标签引用或者包裹的,然后还得找连接里面的脚本比如javascript:...,和写在标签上的事件什么的,基本上就是要实现一个浏览器,除了不用显示
不过最主要的就是Ajax异步获取的问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询