本文会使用requests库抓取百度图像搜索API返回的JSON数据,并根据图像URL下载图像文件。由于API返回的是JSON格式的数据,所以不需要使用任何HTML分析库,只需要将数据转换为JSON对象即可。
抓取API数据的第一步就是要确定网站的数据是否是通过异步的方式获取的。判断方式有多种,如果是显示图像的网站,而且是在一页上显示所有的图像,只需要将网页不断向下拉,如果在浏览器页面,随着滚动条向下拉动,不断显示新的图像,那么可以肯定,这个网址的图片数据是通过异步获取的。通常会首先获取一个包含图片信息的列表(JSON格式),然后会从列表中提取出图像相关的信息,如图像名称,图像URL等,最后会将这个新的图像显示在页面上。
现在来分析百度图像搜索,读者可以通过http://image.baidu.com进入百度图像搜索首页,在搜索框中输入一个关键字,如“外星人”。会搜索出类似图13-9所示的结果。