如何采集同一网页地址,通过点击按钮的其他数据

Power Query 风好大压力 ⋅ 于 2019-10-20 20:39:26 ⋅ 最后回复由 风好大压力 2019-11-12 17:37:52 ⋅ 3046 阅读

请问:用Power Query采集网站http://zq.win007.com/cn/team/Summary/88.html
只能采集“进攻数据“内容。防守数据通过点击,可以看到,却不能采集。
file
网站的数据:1、进攻数据。2防守数据

file
2,点击防守数据后,出现防守数据
file
采集后,只有进攻数据

file
以我小白的能力,现在只能找到这里,却没有办法找到防守数据的网址。
请各位大侠帮忙看看,如何采集防守数据,谢谢

成为第一个点赞的人吧 :bowtie:
回复数量: 7
  • 逍遥之 从事电商,物流供应链行业
    2019-10-23 13:00:09

    都在同一个字段里面。

    file

  • 风好大压力
    2019-10-23 22:01:42

    点击进攻或者防守,其中有个语句style="display: none;起作用,用Power Query,就是只能够采集到进攻数据,真是不知道问题在哪里

    file

    file

  • Ntt docomo
    2019-10-29 09:35:10

    网站没了

  • geyee
    2019-11-09 20:50:28

    SummaryJs.js 里的ClickTechType函数监听对"进攻数据"、"防守数据"的点击事件,控制切换style样式为diplay:none或者为空。所需数据完全在网页按F12或者Ctrl+Shift+I(检查)可见,而不必翻页(showpage函数及作用于techLogic对象的showPageCountList方法也控制分页显示)。Power Query的Web.Contents得到网页的二进制数据,Text.FromBinary或者Lines.FromBinary解析又无法提供更多信息,同时Web.Page函数没找到可以模拟点击事件的方法 ,WebAction.Request又暂不可用,在浏览器终端利用JavaScript获得数据倒是可以。值得注意的一点是,不同版本Excel和PowerBI Desktop上的Web.Page解析网页结构化数据的效果可能是不一样的,最新版的效果看着好些。

    需要锚定获取数据的区域,如利用document.getElementsByClassName("data")document.getElementsByTagName("tbody")
    document.getElementById("Tech_sclass"),来初步定位数据。考虑利用Data URLs( data URI scheme)来包装及下载数据,利用畅心老师的前端下载的现成代码再加工下就成。在网站对应的浏览器终端输入如下

    
    var tb=document.getElementsByClassName("data")[3].getElementsByTagName("tbody")[0].innerHTML;
    var tb=tb.replace(/style="display: none;"/g,'');
    var template =`<html><head><meta charset="UTF-8"></head><body><table>${tb}</table></body></html>`;
    window.location.href = 'data:application/vnd.ms-excel;base64,' + btoa(unescape(encodeURIComponent(template)));```    
    
    得到的结果是进攻数据和防护数据混合在一起的html格式的伪excel文件(需要excel打开启用编辑然后再另存一下就OK了),如果需要分门别类的,尚需考虑。
    抓取类似方式呈现的数据,可能Python、C#等更在行些,或者选用一些第三方的网抓、采集工具,如码栈、八爪鱼等。由于学识尚浅,部分描述可能有技术性错误,见谅。
    
    ![file](https://pbihub.cn/uploads/images/201911/09/73/8jtAFWHNeT.png)
  • 风好大压力
    2019-11-10 10:08:16

    感谢geyee回复,用Power Query也是初步,
    “在网站对应的浏览器终端输入如下”下面的代码,

    我都不知道代码在哪里输入,见谅

  • geyee
    2019-11-10 10:50:16

    @风好大压力 Ctrl+Shift+I或F12 选择终端,看截图file,可先搜索下"浏览器 终端 javascript 调试 "关键词学习下。

  • 风好大压力
    2019-11-12 17:37:52

    @geyee 感谢你的回复。看了一些文章,还是没有搞清楚
    file
    不知道把代码输入到哪个下面

暂无评论~~
  • 请务必阅读并严格遵守《社区管理规范与使用说明》
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 发送表情,可用的 Emoji 见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板粘贴上传, 格式限制 - jpg, png, gif
  • 不支持上传附件,请尽可能用文字和图片将问题描述清楚,如实在需要上传附件,可上传到 共享网盘 后分享链接
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
Ctrl+Enter