❶ 如果网页内容是由javascript生成的,应该怎么实现爬虫
对于提到的两种方法,抓包分析获取请求的参数和驱动浏览器内核执行 js 代码,两种方法各有优点,选择适合你的方式就好。
抓包分析,这个方法的优点是抓取的速度快,取得数据结构比较好,处理起来简单,很多是 json 格式的数据,但是抓包分析需要大量的时间,这里的时间是指需要模拟需要获取数据的之前的一个或者几个请求,涉及到 headers 里的很多参数,有时候还设计到数据加密,这个过程你可能需要读 js 源码,才能解决问题。所以这个方式适合那些请求参数较少,数据结构比较好的网站。
2. 驱动浏览器内核,这个方法的优点是编程实现比较简单,只要学会了驱动浏览器的 api 就可以在很少的改动下用于很多不同网站的抓取。但是缺点也很明显,慢,占用的资源比较多,不如抓包分析获取数据灵活。
我以前抓取的好多网站都是用抓包分析的方式,还分析了好多网站的登录的机制,用 Python 重写 js 的请求,做模拟登录,对于抓包分析有些偏执,但是我现在的观点是:用最少的时间成本来解决问题,这里的时间成本是指编程时间和抓取的时间之和。当然你如果是学习的话,我建议两种方式都学。
❷ 在做一个JS模拟登录的程序,但是该网站登录不需要验证码不过post地址里有验证码怎么办
_=1442571101382
这个估计是时间戳,jquery ajax访问都会生成一个这个。
其实就是一个变量,保证每次值不同就可以了