爬虫如何获得 js 运行过后的html代码

name扬 发布于 2013/08/10 18:02
阅读 8K+
收藏 3

学习做爬虫,遇到一个问题,就是获取不到通过js产生的html代码,

我用的jsoup对页面进行解析的,

以前的思路:使用Java自带的类写一个简易的浏览器,设置一定的加载时间,等时间一过就将页面下载下来,然后进行解析。

可是这种速度太慢,有什么办法获得加载过后的 hml页面

加载中
0
狮子的魂
狮子的魂

1. 分析ajax数据

2. 提取抓取的js数据, 然后使用Rhino js引擎执行js并且获取提取结果. (速度还是有些影响的)

狮子的魂
狮子的魂
回复 @name扬 : 先前用过, 印象中API也不复杂.
n
name扬
呃 , 谢谢 在网上查了,方法很好 ,不过对我一个Java 初学者 貌似有点难。。。。呵呵 反正至少有方向了 谢了
0
黑豆白
黑豆白

没好办法吧~~

不如分析ajax获取了啥数据,直接抓ajax数据好了

n
name扬
是不是模拟浏览器 的request ,我用的是HttpURLConnection这个类,其中有一点不知道怎么解决, urlConn.addRequestProperty("Cookie",cookie); 这个cookies该怎么设?我的爬虫是爬新浪微博的,没有cookies话,是得不到页数的,用api 我没那个权限
0
这个人很懒

引用来自“黑豆白”的答案

没好办法吧~~

不如分析ajax获取了啥数据,直接抓ajax数据好了

如何处理jquery的id什么的?
黑豆白
黑豆白
你说的应该是ajax请求时带的页面的参数吧? 分析完页面不就有参数了。 我这个方法比较笨,只能抓取当前网站的。换个站就不能用了。 1、人工分析需要哪些数据,哪些数据需要ajax及url访问方式。 2、分析页面将ajax需要的参数分析出来,以及页面有用的数据 3、请求ajax操作,处理返回结果。 至于登录什么的,和平常的一样吧。模拟方法一般都支持的
0
iimax
iimax

侦测到页面的ajax,才是最复杂的吧

google目前也是搞了一些url规则,如果你的网站遵守,它就知道你在ajax。例如 http://xxx.com/#post之类 #后面的东西

0
数据工厂
数据工厂
推荐你学习一下这个教程:http://blog.csdn.net/youmumzcs/article/details/51385856。专门讲解了如何爬取js运行后的html代码。
返回顶部
顶部