Curl尝试获取内容但捕获加载页面

时间:2017-07-22 09:00:20

标签: curl wget

帮助

https://workflowy.com/s/CbqM.M3tcZFhqd3#/?q=ADM-NF01

我想抓住

功能路线图 V0 - 阿尔法 基本A11Y和I18N 无障碍和国际化的基础 ADM-NF01

但我似乎正在捕捉的只是加载屏幕

捕获= time (curl -s -G -L --connect-timeout 100 https://workflowy.com/s/CbqM.M3tcZFhqd3#/?q=ADM-NF01)

只有真正感兴趣的是这一行V0 - Alpha才能捕获这个可以改变(版本控制)当我得到这个位工作时我会越过那个桥。

有没有办法做这个尝试curl和wget但没有运气

主要目标是搜索即ADM-NF01并抓住V0 - Alpha

这里有一些例子 https://workflowy.com/s/CbqM.M3tcZFhqd3#/?q=DV-F85 DV-F85 = Vn - 未来

https://workflowy.com/s/CbqM.M3tcZFhqd3#/?q=ADM-F71.1 ADM-F71.1 = V1 - Beta

我不知道从哪里开始绑谷歌搜索有人建议的JSON解析,但知道如何做到这一点,因为我甚至无法获取数据?

由于

1 个答案:

答案 0 :(得分:0)

从网络日志中,您可以获得JSON内容:

mock_open

您可以使用https://workflowy.com/get_initialization_data?share_id=CbqM.M3tcZFhqd3&client_version=18 JSON解析器进行解析,以对特定字段应用过滤器并获得预期输出:

filter="ADM-NF01"

curl -s "https://workflowy.com/get_initialization_data?share_id=CbqM.M3tcZFhqd3&client_version=18" | \
jq -r --arg filter $filter '.projectTreeData.mainProjectTreeInfo | 
       .rootProject.nm as $h1 | 
       .rootProjectChildren[] | 
       .nm as $h2 | 
       .ch[] | 
       .nm as $h3 | .no as $h4 | 
       select(.ch != null) |
       .ch[] | select(.nm == $filter) | $h1,$h2,$h3,$h4,.nm'

给出:

Feature Roadmap
V0 - Alpha
Basic A11Y and I18N
Foundations for Accessibility and Internationalisation
ADM-NF01

对于jq部分:

  • --arg用于传递过滤器值
  • 您要保留的字段存储在as $var
  • 的变量中
  • select用于应用过滤器
  

主要目标是搜索即ADM-NF01并抓住V0 - Alpha

如果您只需要V0 - Alpha部分:

filter="ADM-NF01"

data=$(curl -s "https://workflowy.com/get_initialization_data?share_id=CbqM.M3tcZFhqd3&client_version=18" | \
jq -r --arg filter $filter '.projectTreeData.mainProjectTreeInfo | 
       .rootProjectChildren[] | .nm as $h2 | 
       .ch[] | select(.ch != null) |
       .ch[] | select(.nm == $filter) | $h2')

echo "$data"

请注意==完全匹配,如果您需要包含,可以使用:

select(.nm | contains($filter))