题目:
根据指定URL,提取网页中所有锚链接,即href=""中引号之间的部分。
解法:
使用Text.FromBinary
和Web.Contents
的组合获取目标网页的HTML源码当作文本处理,然后使用Text.PositionOf
获取共有多少个分隔符,List.Transform
+Text.BetweenDelimiters
从索引0即第1个开始提取,依次提取到最后。
let get_link = (x,start,end)=>[a=Text.FromBinary(Web.Contents(x)),b=List.Transform({0..List.Count(Text.PositionOf(a,"href=""",2))-1},each Text.BetweenDelimiters(a,start,end,_))][b], result = get_link("pqfans.com","href=""","""") in result
我获取了一个网站的连接,但连接是拼合的,由A+B组成,采用上述代码获取后只能获取到B,如何能在获取后自动添加前缀www.###.com
"www."&B&".com"
老大,这里的Text.BetweenDelimiters(a,"href=""","""",_)) 最后这个_ 是啥意思呢?
我看函数说明:
Text.BetweenDelimiters(text as nullable text, startDelimiter as text, endDelimiter as text, optional startIndex as any, optional endIndex as any) as any
我理解是指startIndex,但是用_,和省略掉,好像很不一样,如果省略掉就只是第一个url了。
以及,
get_link = (x,start,end)=>[a=Text.FromBinary(Web.Contents(x)),b=List.Transform({0..List.Count(Text.PositionOf(a,"href=""",2))-1},each Text.BetweenDelimiters(a,start,end,_))][b]
这最后的[b]又是怎么理解呢?感觉是构造了一个函数,然后是 fx=(x,start,end)=>[a,b][b]
[a,b][b]这个是什么语法,表示啥意思呢?