1用dryscrape库动态抓取页面
js脚本是通过浏览器来执行并返回信息的,所以,抓取js执行后的页面,一个最直接的方式就是用python模拟浏览器的行为。WebKit 是一个开源的浏览器引擎,python提供了许多库可以调用这个引擎,dryscrape便是其中之一,它调用webkit引擎来处理包含js等的网页!
2 selenium web测试框架
selenium是一个web测试框架,它允许调用本地的浏览器引擎发送网页请求,所以,它同样可以实现抓取页面的要求。
一、查看相应的js代码,用python获取原始数据之后,模仿js编写相应的python代码。二、通过接口api获得数据,直接使用python获取接口数据并处理。
三。终极方法。使用 Selenium和PhantomJS执行网页js代码,然后再获取数据,这种方法100%可以获取数据,确定就是速度太慢。
对于这种动态加载的网站,建议使用第三方库selenium爬取。它可以完全模拟浏览器,等待网站全部加载完成后再进行数据的自动获取。
对于主流的ChromeDriver、InternetExplorerDriver、FirefoxDriver、OperaDriver都支持,网站上的元素也支持多种选择器,如class、id、xpath等。
但是用习惯以后,对于这种非纯静态页面,离开selenium感觉就完全不会爬虫了。