怎样抓取网页数据(怎么来爬取这种数据?爬虫愉快的批量解析网页)
优采云 发布时间: 2022-01-31 01:09怎样抓取网页数据(怎么来爬取这种数据?爬虫愉快的批量解析网页)
我们在使用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/nianjian/2016/'+urls_tag
response=requests.get(url)
print(response.headers['Content-Type']) #输出:application/vnd.ms-excel
首先使用requests.get()解析网页,然后在headers中查看网页的Content-Type,输出为application/vnd.ms-excel。可以看出这个网页的内容类型是一个可下载的excel,然后就可以使用内容功能来下载这个excel了。
os.makedirs('年鉴test')<br />with open('年鉴test/{}.xls'.format('2-6 市区国有单位从业人员和工资总额'), 'wb') as f:<br /> f.write(response.content)
首先用os创建一个叫'yearbook test'的文件夹,然后新建一个叫“2-6个城市国有单位职工及工资总额”的excel文件,将response.content写入到excel文件中来实现。从网页爬取到本地excel文件。
剩下的就是愉快地批量解析网页,然后快速爬取数据。下面的文章我会继续介绍详细的爬取步骤。