本文使用requests库捕获百度图像搜索API返回的JSON数据,并根据图像URL下载图像文件。 因为API返回JSON格式的数据,所以不需要使用HTML分析库,只需将数据转换为JSON对象。
获取API数据的第一步是确定是否异步获取了网站的数据。 判断方法有很多种,但如果是显示图像的网站,而且要在一页上显示所有图像,只需不断地往下拉网页即可。 如果滚动条在浏览器页面上向下拖动,并不断显示新图像,则可以肯定,该网站的图像数据是异步获取的。 通常,首先获取包含图像信息的列表(JSON格式),从列表中提取图像相关信息(如图像名称、图像URL等),最后在页面上显示此新图像。
分析一下百度图像检索吧。 读者可以在http://image.baidu.com进入百度图片搜索首页,在搜索框中输入类似“外星人”的关键词。 将搜索如图13-9所示的结果。