Python爬虫之处理带Ajax、Js的网页
现在很多网站的都大量使用JavaScript,或者使用了Ajax技术。这样在网页加载完成后,url虽然不改变但是网页的DOM元素内容却可以动态的变化。如果处理这种网页是还用requests库或者python自带的urllib库那么得到的网页内容和网页在浏览器中显示的内容是不一致的。那么我们这样就采集不到想要的结果。
为了解决这个问题,可以使用Selenium+PhantomJS。这两个组合在一起,可以运行非常强大的爬虫,可以处理cookie,JavaScript,header以及其他你想做的任何事情。
Selenium是一个强大的网络数据采集工具,最初是为网站自动化测试开发的,其有对应的Python库,可以通过命令pip install selenium
进行安装。
PhantomJS是一个基于webkit内核的无头浏览器,即没有UI界面,即它就是一个浏览器,只是其内的点击、翻页等人为相关操作需要程序设计实现。通过编写js程序可以直接与webkit内核交互,在此之上可以结合java语言等,通过java调用js等相关操作。需要去官网下载对应平台的压缩文件,Linux下直接解压即可使用。
下面是通过这两者来解决客户端重定向问题的例子:
from selenium import webdriver
import time
fro