我们在使用python爬取数据时有时会碰到这样一种情况,有一些网站一点击并不会弹出一个网页,而是直接下载一个excel或者jpg文件。这种情况当然是好的,不用爬虫,就能直接下载数据了,但是有时候需要批量的下载这种网页数据,用鼠标逐条点击也是很麻烦的事情。
怎么来爬取这种数据呢,和爬取图片一样,使用requests的.content函数命令。
这里以爬取结构简单的统计年鉴为例,打开一个标准的统计年鉴html页面,F12进入开发者模式,左侧是目录,右侧是对应的源代码值。如下:
我们一旦点击左侧的目录内容,就会直接下载一个命名为目录的excel文件,而不会弹出新页面,这样如果要下载一年的统计年鉴的话,得逐一点击左侧目录,200多下,还只是一年的,如果需要下载好几年的统计年鉴的话,显然成了个体力活,效率太低。我们分析一下源码结构,看右侧的源码结构很简单,herf都位于节点中,因此只要能让python能够自己下载保存这样的excel文件,之后通过beautifulsoup对整个网页结构的解析,就可以实现批量下载了。
首先我们看一下网页的Content-Type:import requests
import os
urls_tag='html/02-06.xls'
url='http://www.sjztj.gov.cn/uploadfile/nianjia