怎样抓取网页数据(怎么来爬取这种数据?爬虫愉快的批量解析网页)

优采云 发布时间: 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文件。

  

  剩下的就是愉快地批量解析网页,然后快速爬取数据。下面的文章我会继续介绍详细的爬取步骤。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线