SpiderFlow可视化爬虫教程1(讲解遇到的特殊情况,什么情况下要爬json?)

如果一下的文章看不懂细节,不用担心,先照着葫芦画瓢。我们将在下一篇博客,讲解细节。

首先,我们在浏览器打开这个网站。
爬虫地址:http://xxfb.mwr.cn/sq_zdysq.html
打开之后,我们看到了一个表格。
SpiderFlow可视化爬虫教程1(讲解遇到的特殊情况,什么情况下要爬json?)

在浏览器按F12,右键表格第一行,然后选择检查。我们将在浏览器右侧看到如图高亮显示的那一行代码。
很明显,这个表格的父元素是tbody标签,tbody标签的有个id属性。
因为id属性是唯一的,所以从tbody的id属性开始爬取子元素,子元素即表格数据。
SpiderFlow可视化爬虫教程1(讲解遇到的特殊情况,什么情况下要爬json?)

先把小虫拖进来,设置URL。鼠标按住左键由小手到拖动虫子即可画出箭头。
url: http://xxfb.mwr.cn/sq_zdysq.html
SpiderFlow可视化爬虫教程1(讲解遇到的特殊情况,什么情况下要爬json?)
拖动var变量图标到面板,然后设置变量名和变量值。
变量名:table
变量值:${resp.xpath(’//*[@id=“DataContainer”]’)}
至于这些变量是什么意思,我们会在另外一篇博客专门讲解。
SpiderFlow可视化爬虫教程1(讲解遇到的特殊情况,什么情况下要爬json?)

点击启动图标,然后再点击输出值
SpiderFlow可视化爬虫教程1(讲解遇到的特殊情况,什么情况下要爬json?)
我们会发现里面的内容是空的
SpiderFlow可视化爬虫教程1(讲解遇到的特殊情况,什么情况下要爬json?)

我们回到Chrome浏览器的控制台。按照如下图点击
SpiderFlow可视化爬虫教程1(讲解遇到的特殊情况,什么情况下要爬json?)
然后刷新页面。
我们发现它会发送一个请求,红色框就是刷新页面后显示出来的。
SpiderFlow可视化爬虫教程1(讲解遇到的特殊情况,什么情况下要爬json?)
如下图,复制这个url以后,粘贴到浏览器取访问
SpiderFlow可视化爬虫教程1(讲解遇到的特殊情况,什么情况下要爬json?)

浏览器返回给我们的数据如图:
这是json数据,里面的数据不就是表格里面的数据吗??
SpiderFlow可视化爬虫教程1(讲解遇到的特殊情况,什么情况下要爬json?)
但是,这样太难看了。
我们打开火狐浏览器,把刚刚复制的url粘贴到火狐浏览器。
然后适当展开数据:
在火狐浏览器中,如果显示的是这样可以展开的数据,那么就是标准的json数据格式。否则它不是一个标准格式的json数据。
SpiderFlow可视化爬虫教程1(讲解遇到的特殊情况,什么情况下要爬json?)

疑问:
明明看到有表格的html元素,但是爬虫的时候输出为空元素,这是因为这个网站的界面布局和表格是分开的,我们请求http://xxfb.mwr.cn/sq_zdysq.html地址的时候,只渲染了界面布局,表格还没有内容的。然后再发送http://xxfb.mwr.cn/hydroSearch/pointHydroInfo这个请求url,表格内容才显示出来。也就是说这个网站本质上是发了2个url请求,我们爬虫的时候只请求了一个url,所以表格的数据拿不到。

下一篇博客,我们开始从
http://xxfb.mwr.cn/hydroSearch/pointHydroInfo
开始爬虫。

上一篇:接口测试 Mock 实战(二) | 结合 jq 完成批量化的手工 Mock


下一篇:使用镜像安装python库