应该是没法抓取渲染后的页面。
因为渲染这个工作是浏览器完成的。而你通过python脚本抓取到的内容仅仅是html、css、js等源码。
对于一些需要js异步加载的内容获取,通常是先获取相关源码,然后参考js源码,利用python伪造一个请求(带上所需的参数)再向服务器获取一次内容。
动态内容的爬取,也是爬虫面临的一个比较大的难题。很多动态请求 事实上并不是那么容易伪造的。
目前我知道的有两种方法,一种是使用selenium框架,另一种是用phantomjs.
前者,是一个自动化测试框架,有一个webdriver类,运行的时候它会打开一个浏览器,就像你正常浏览网页一样。
后者,相当于一个无界面的浏览器,它会帮你渲染界面,可以获取到渲染后的页面以及执行脚本。
具体使用方法,可以上网搜搜,网上很多的。
from
tornado_fetcher import
Fetcher
# 创建一个爬虫
>>>
fetcher=Fetcher(user_agent= 'phantomjs'
, phantomjs_proxy= 'http://localhost:12306'
, poolsize= 10
)
# 开始连接Phantomjs的代码,可以渲染JS!
>>>
fetcher.fetch(url)
# 渲染成功后执行额外的JS脚本
>>>
fetcher.fetch(url, js_script= 'setTimeout("window.scrollTo(0,100000)", 1000)'
)