写爬虫第一次遇到Ajax,遂记录一下。
1 目标
站长之家云观测,百度云加速在北京的IP地址。
网页地址:http://cdn.chinaz.com/server/百度云加速
2 爬取过程
可以看到北京IP节点分布由1961条记录,共99页,但是它使用了AJAX,AJAX可以做到在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。AJAX使用XMLHttpRequest对象,在后台与服务器交换数据。
所以首先打开浏览器的开发者模式,点击网络,XHR(我使用的是Safari浏览器,其他浏览器同理)。刷新页面,点击北京。发现XHR中出现一个新的条目AreaIP。如下图所示
点击这个AreaIP,发现这个XHR对象的信息,包括URL,数据格式,查询字符串等。
访问这个url,就能看到我想要的信息,如下图所示。
这时候只需要改变url查询字符串中的pageindex参数就可以获得所有页的数据了。