excel抓取网页数据(这是2020#阿里的法拍住宅数量(119万))

优采云 发布时间: 2022-01-17 04:19

  excel抓取网页数据(这是2020#阿里的法拍住宅数量(119万))

  #学Wave2020#

  今天阿里的止赎数量是119万,但是昨天截图的时候还是118万,而且这个数字应该还在快速增长。我们今天正在尝试抓取 Alifa 住宅数据。

  网站分析

  参考昨天的思路,没有任何有用的线索。Ali网站 不提供现成的 JSON 或 JSONP 数据。

  

  但是阿里网站的url直接有页码。是不是意味着我们可以通过url直接抓取呢?

  

  有兴趣的可以直接试一试。果然可以直接定义一个函数来抓取它:

  

  爬取结果:

  

  真的那么容易吗?我不敢相信。在 Power Query 中,150 页中每页只有 6,000 40 个条目。显然有问题。虽然预览成功了,但数据本身也有问题。数值以万元为单位,不规范,所以这个数据应该是有问题的。放弃这种方法。

  不过,这也提供了一个思路。可以尝试通过url直接爬取。

  

  我们来到元素视图,发现了这么一段内容,仔细观察,这是一个JSON数据,复制到Power Query可以解析出来:

  

  它是非常标准的 json 数据:

  

  展开后得到的数据比我们之前刮的要好很多。

  我们可以通过 Web.BrowserContents 函数获取这个文本,然后从文本中提取 json 数据。

  

  我们还在此文本的页面上找到了统计信息:

  

  您还可以找出有多少页数据:

  

  对应这个位置:

  

  至此,我们的把握思路基本清晰。

  我们可以按照区县一级的行政区划来采集数据。此级别的数据捕获需要两个参数,管理代码和页码范围。行政代码可通过相关网站直接获取,页码可在首页找到的各区县查询。

  为了捕获特定的数据,可以定义一个函数来从每个页面的代码中提取 JSON 数据。

  但是,119万条具体的房屋信息对我们来说是没有用的。我们感兴趣的是统计数据。我们直接从县级行政区划的首页找到这个统计信息就够了。

  定义函数

  fp函数:获取页码范围的函数,使用Text.Split函数拆分书

  

  fn function:获取统计结果的函数

  

  fd函数:获取特定房屋信息的函数

  

  试着抓

  抓取沉河区具体房屋信息数据:

  

  沉河区统计:

  

  抓

  抓取沉阳房屋具体信息:

  先找到这一段,复制出来:

  

  将其复制到 Power Query 中是这样的。处理后可以得到沉阳市的区县和代码:

  

  处理结果:

  

  然后我们参考fp函数得到页码范围:

  

  生成所有页码:

  

  展开并添加 fd 函数来抓取数据:

  

  展开数据:

  

  这样,特定的住房信息数据就被捕获了。

  抓取全国县级行政区的统计信息有点麻烦,我发现阿里的行政区号和国家区号有点不一样,会导致数据缺失。大部分还是可以匹配的,少数不一致。我们来看看全国各区县的行政代码列表:

  

  完成结果:

  

  在此基础上,参考fn函数抓取统计信息:

  

  这个过程很慢,耐心点,一共大概有3000左右。

  将数据加载到 Power BI Desktop 并制作几个图表以查看:

  热图:

  

  条形图:

  

  分解树:

  

  我可以看到总数是119万。我这里只有107万,少了12万,是编码不一致造成的。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线