大胆尝试,小心试错
这里有个前提,我是有权限下载报表的,只是不想挨个下载
所以,如果没有权限下载,你必须想办法弄个有权限的账号,登陆后寻找session id(有效期多久,我不清楚)
第一步,定位查询报表间的关系
说是爬虫,但我感觉我更多做的是定位链接间的关系
经我分析发现,我们用的类似这种
他这个查询比较狗,加载页面的链接和查询的链接不是同一个,你可以看看返回表格的上一个链接。在NetWork里面
如果他的参数,比如地区也是一个链接加载出来的话,且参数中带有%什么的,我建议你搜一下js解密
第二步,准备工具
士兵没有刀枪,怎么上战场呢
下载python,安装一些必须的依赖
我下载的是3.9,下了这些依赖
如果你像我一样需要在内网安装,那可能需要这个教程
第三步,爬取
通过阅读帆软的finereport.js我发现,他是有提供下载报表的方法的,所以没必要去一行一行爬,我们只需要请求对应的链接即可。
我的方法是,先请求回显报表上面的那个链接,然后再请求回显报表的链接,最后再请求下载报表的链接。
你不需要模拟请求头,只需要在你的链接里加上sessionid,他自己会携带的,你可以把它看成容器?
链接里的参数,你要注意判断,我有个参数看了好久,才发现他是时间戳
知彼知己,百战不殆,如果你一时没有思路,可以去大致学一下帆软报表,这样可能会帮你更好的爬取,可以搜帆软社区,帆软帮助文档。甚至可以停下来,歇一歇。你要让你的R型思维转一转,一直想是想不出来答案的,你需要缓一缓,避免思维定势。
第四步,合并
因为,我的需要,要把多个excel合并在一起,本来我在想用python,但是苦于内网下载不便,又懒得去找。就想找自身功能
没想到还真的让我找到了。
可以用Excel的自身功能去合并,可以参考这个,我用的他的第一种代码的方法,合并完可以把代码删了,就能保存了,不要一下合并几百个,机器可能受不了。