Forum Discussion
Anonymous
5 years agoNot applicable
Get data from a web
Hi, Could anybody help me to get the number of pages please? I think my problem is the condition to stop "each Table.IsEmpty(Page)," The call to this page has 1131 pages, and 1132 gives an error....
- 5 years ago
Anonymous , you might want to try a complete procedure like this if you insist on List.Generate().
let GetData = (PagePath as number) => Xml.Tables(Web.Contents("https://gtr.ukri.org:443/gtr/api/funds?p="&Text.From(PagePath)&"&s=100")){[Name="fund"]}[Table], Source = List.Generate( () => [page = 1, Page = GetData(page)], each not (try [Page])[HasError], each [page = [page] + 1, Page = GetData(page)], each [Page] ), Dataset = Table.Combine(Source) in Datasetthe condition to contiue the loop is a bit tricky,
each not (try [Page])[HasError]Here's a detailed reference to the syntax of try statement in M language,
https://bengribaudo.com/blog/2020/01/15/4883/power-query-m-primer-part-15-error-handling
CNENFRNL
5 years agoCommunity Champion
Hi, Anonymous
As M language is extremely strick on data type, this expression
"https://gtr.ukri.org:443/gtr/api/funds?p="&PagePath&"&s=100"
throws error when a PagePath (as number) is passed to it.
You might want to try
https://gtr.ukri.org:443/gtr/api/funds?p=" & Text.From(PagePath) & "&s=100"