Help yourself. It's 10 p.m. here :-)
If I could do it myself, I wouldn't be asking you
link in message don't have all information for your example screenshot
🙏🏻 thanks, if you need more info or something is not clear contact me in pm!
Ciao! You need something like this? let fx = Text.BetweenDelimiters, Source = Web.Contents("https://bsportsfan.com/ce/table-tennis/"), HTMLText = Text.FromBinary(Source), Split = Lines.FromText(fx(HTMLText, "<table class=""table table-sm"">#(lf)", "</table>")), Table = Table.FromList(Split, Splitter.SplitByNothing(), null, null, ExtraValues.Error), FilteredTrash = Table.SelectRows(Table, each not List.Contains({"<tr>"," <td>"," </td>"," </td>","</tr>"," <a href=""/login""><i class=""fa text-danger fa-heart-o""></i></a>"},[Column1])), AddedIndex = Table.AddIndexColumn(FilteredTrash, "Index", 0, 1), IntegerDividedColumn = Table.TransformColumns(AddedIndex, {{"Index", each Number.IntegerDivide(_, 4), Int64.Type}}), Grouped = Table.Group(IntegerDividedColumn, {"Index"}, {{"tab", each Table.FromRows({[Column1]},{"Matches","In Play","Results","Data"}), type table}}), tab = Table.Combine( Grouped[tab] ), Transformations = Table.TransformColumns( tab, {{"Matches", each Text.AfterDelimiter(Text.Replace(_, "</a></td>", ""), ">", {0, RelativePosition.FromEnd}), type text}, {"In Play", each fx(_, """", """"), type text}, {"Results", each fx(_, ">", "</a>") & " v " & fx(_, "</a>", ">", {0, RelativePosition.FromEnd}, {0, RelativePosition.FromEnd}), type text}, {"Data", each {Text.Trim(fx(_, ">", "</a>")), "https://bsportsfan.com"&fx(_, """", """")}, type list}}), SplitList = Table.SplitColumn(Transformations, "Data", (x)=>x, {"Score", "Link"}) in SplitList
Лёха, там загвоздка теперь ещё и спарсить столбец link - т.е. пройти по каждой и получить полную инфу по матчу
в работе) пусть Леха поспит)))
я только проснулся - на время сообщения не глянул, сорян
add info in code by @PooHkrd it's work, but slowly let fx = Text.BetweenDelimiters, Source = Web.Contents("https://bsportsfan.com/ce/table-tennis/"), HTMLText = Text.FromBinary(Source), Split = Lines.FromText(fx(HTMLText, "<table class=""table table-sm"">#(lf)", "</table>")), Table = Table.FromList(Split, Splitter.SplitByNothing(), null, null, ExtraValues.Error), FilteredTrash = Table.SelectRows(Table, each not List.Contains({"<tr>"," <td>"," </td>"," </td>","</tr>"," <a href=""/login""><i class=""fa text-danger fa-heart-o""></i></a>"},[Column1])), AddedIndex = Table.AddIndexColumn(FilteredTrash, "Index", 0, 1), IntegerDividedColumn = Table.TransformColumns(AddedIndex, {{"Index", each Number.IntegerDivide(_, 4), Int64.Type}}), Grouped = Table.Group(IntegerDividedColumn, {"Index"}, {{"tab", each Table.FromRows({[Column1]},{"Matches","In Play","Results","Data"}), type table}}), tab = Table.Combine( Grouped[tab] ), Transformations = Table.TransformColumns( tab, {{"Matches", each Text.AfterDelimiter(Text.Replace(_, "</a></td>", ""), ">", {0, RelativePosition.FromEnd}), type text}, {"In Play", each fx(_, """", """"), type text}, {"Results", each fx(_, ">", "</a>") & " v " & fx(_, "</a>", ">", {0, RelativePosition.FromEnd}, {0, RelativePosition.FromEnd}), type text}, {"Data", each {Text.Trim(fx(_, ">", "</a>")), "https://bsportsfan.com"&fx(_, """", """")}, type list}}), SplitList = Table.SplitColumn(Transformations, "Data", (x)=>x, {"Score", "Link"}), // add info fhistory = (link)=> let hlink = Text.Replace(link, "/r/", "/rh/"), data = Web.Page(Web.Contents(hlink)), combHistory= Table.AddColumn(data{0}[Data], "h", each "HtH") & Table.AddColumn(data{1}[Data], "h", each "HH") & Table.AddColumn(data{2}[Data], "h", each "AH"), gr = Table.Group(combHistory, {"Column4", "h"}, {{"q", each Table.RowCount(_), Int64.Type}}), comb = Table.CombineColumns(gr,{"h", "Column4"},Combiner.CombineTextByDelimiter(" - ", QuoteStyle.None),"n"), tr = Table.Transpose(comb) in Table.PromoteHeaders(tr, [PromoteAllScalars=true]), addHistory = Table.AddColumn(SplitList, "history", each fhistory([Link])), fsets = (link) => let tabl = Web.Page(Web.Contents(link)){0}[Data] in Table.FromRows({List.Combine(List.Skip(Table.ToColumns(tabl)))}), addSets = Table.TransformColumns(addHistory, {{"Link", each fsets(_)}}), lnames = List.Transform(List.Transform({1..10}, Text.From), each "Column" &_), lrenames = {"set1", "set1 ","set2", "set2 ","set3", "set3 ","set4", "set4 ","set5", "set5 "}, exp1 = Table.ExpandTableColumn(addSets, "Link", lnames, lrenames), exp2 = Table.ExpandTableColumn(exp1, "history", {"HtH - W", "HtH - L", "HH - W", "HH - L", "AH - W","AH - L"}) in exp2
im not sure how to use this code
там главное не профукай отменные матчи. совсем другая табличка на выходе
this is correct code? how i can use it?
Copy code and paste it in Advanced editor
а какой признак у отмененного матча?
Вместо счетастатус Cancelled
Обсуждают сегодня