当然,如果提交后页面没有刷新,但又有新内容出现,这倒是有可能是js生成的,一般都是用js通过ajax提交数据,然后再把服务器返回的信息显示到页面上,这样做可以减轻服务器的压力,而且由于页面没有刷新(闪一下),用户体验也较佳。
还有一种可能,是预先把要显示的内容放在页面上,但是隐藏起来,当某种预期的事件发生时再显示出来。
抓取js动态生成的内容的页面有两种基本的解决方案1用dryscrape库动态抓取页面
js脚本是通过浏览器来执行并返回信息的,所以,抓取js执行后的页面,一个最直接的方式就是用python模拟浏览器的行为。WebKit 是一个开源的浏览器引擎,python提供了许多库可以调用这个引擎,dryscrape便是其中之一,它调用webkit引擎来处理包含js等的网页!
2 selenium web测试框架
selenium是一个web测试框架,它允许调用本地的浏览器引擎发送网页请求,所以,它同样可以实现抓取页面的要求。