Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from lxml import html
- from bs4 import BeautifulSoup
- import pandas as pd
- from tabulate import tabulate
- # Sample HTML data
- html_data_1 = """
- <h1 class="title font-bold text-black-main font-secondary leading-[30px]" id="next-matches-h1">Next Football Matches: Today, 01 Sep 2023</h1>
- """
- html_data_2 = """
- <div data-v-a2e7f304="" id="KWeP6S9H" class="eventRow flex w-full flex-col text-xs" set="71496"><div data-v-a2e7f304="" class="bg-gray-med_light flex h-[30px] w-full items-center justify-start gap-1"><a href="/football/" class="flex gap-1 text-xs font-normal"><div class="align-center ml-[10px] h-4 w-4 bg-cover ls-football"></div> Football</a><div>/</div><a href="/football/argentina/" class="ml-1 flex items-center gap-1 text-xs font-normal"><img src="https://cci2.oddsportal.com/flags/ar.svg" alt="ar" class="align-center h-3 w-[18px] object-cover" loading="lazy"><p class="truncate max-sm:hidden">Argentina</p></a><div>/</div><a href="/football/argentina/reserve-league/" class="truncate text-xs font-normal">Reserve League</a></div><div data-v-a2e7f304="" class="border-black-borders bg-gray-light flex w-full min-w-0 border-l border-r"><div class="border-black-borders flex w-full min-w-0 items-center justify-start pl-2"><div class="text-black-main font-main w-full truncate text-xs font-normal leading-5">Today, 01 Sep - Second stage</div></div><div class="flex"><div class="flex-center border-l text-xs min-w-[60px]">1</div><div class="flex-center border-l text-xs min-w-[60px]">X</div><div class="flex-center border-l text-xs min-w-[60px]">2</div><div class="bg-gray-light flex h-6 min-w-[35px] items-center justify-center border-l text-[10px]">B's</div></div></div><a data-v-a2e7f304="" class="border-black-borders flex cursor-pointer flex-col border-b" href="/football/argentina/reserve-league/arsenal-sarandi-barracas-central-KWeP6S9H/"><div data-v-a2e7f304="" class="border-black-borders group flex border-l border-r hover:bg-[#f9e9cc]"><div data-v-a2e7f304="" class="next-m:flex next-m:!mt-0 ml-2 mt-2 w-full"><div data-v-a2e7f304="" class="ml-2 flex"><div data-v-d99de4de="" data-v-a2e7f304="" class="flex basis-[10%]" status-list-ids="4,5,8,9,10,11,69,36,37,44,45,54"><!----><div data-v-d99de4de="" class="next-m:flex-col min-md:flex-row min-md:gap-1 text-gray-dark flex flex-row self-center text-[12px] w-full"><div data-v-d99de4de="" class="flex w-full"><p data-v-d99de4de="">00:00</p><span data-v-d99de4de="" class="next-m:!hidden ml-auto pr-2"></span><!----></div></div><!----></div></div><div data-v-16416b72="" data-v-a2e7f304="" class="align-center my-1 flex w-[100%] basis-[80%] items-center gap-1 pl-2" r-e-s-u-l-t="1:0"><div data-v-16416b72="" class="align-center my-1 flex w-[100%] flex-col items-center gap-1"><div data-v-16416b72="" class="relative flex w-full min-w-[0] flex-col gap-1 text-xs leading-[16px] next-m:!flex-row next-m:!gap-2 justify-center"><a data-v-16416b72="" href="/football/argentina/reserve-league/arsenal-sarandi-barracas-central-KWeP6S9H/" class="justify-content flex min-w-0 cursor-pointer items-start justify-start gap-1 next-m:!items-center next-m:!justify-end next-m:!gap-2 w-full" title="Arsenal Sarandi 2"><img data-v-16416b72="" src="/serve/images/team-logo/Men/M72oJcoh-dU39vFud.png" alt="Arsenal Sarandi 2" class="h-[18px] w-[18px] next-m:!order-3" loading="lazy"><div data-v-16416b72="" class="min-md:truncate whitespace-nowrap group-hover:underline font-bold next-m:!ml-auto text-gray-dark"><p data-v-16416b72="" class="participant-name truncate">Arsenal Sarandi 2</p></div><div data-v-16416b72="" class="ml-auto mr-3 flex font-bold next-m:!hidden font-bold">1</div></a><div data-v-16416b72="" class="text-gray-dark flex"><div data-v-16416b72="" class="flex gap-1 font-bold font-bold"><div data-v-16416b72="" class="hidden next-m:!flex font-bold">1</div><a data-v-16416b72="" class="hidden cursor-pointer next-m:!flex" href="/football/argentina/reserve-league/arsenal-sarandi-barracas-central-KWeP6S9H/">–</a><div data-v-16416b72="" class="hidden next-m:!flex">0</div></div><!----></div><a data-v-16416b72="" href="/football/argentina/reserve-league/arsenal-sarandi-barracas-central-KWeP6S9H/" class="justify-content flex min-w-[0] cursor-pointer items-center gap-1 next-m:!gap-2 w-full" title="Barracas Central 2"><img data-v-16416b72="" src="/serve/images/team-logo/Men/A5tsDMRt-MTl0Jyko.png" alt="Barracas Central 2" class="h-[18px] w-[18px]" loading="lazy"><div data-v-16416b72="" class="min-md:truncate whitespace-nowrap group-hover:underline text-gray-dark"><p data-v-16416b72="" class="participant-name truncate">Barracas Central 2</p></div><div data-v-16416b72="" class="ml-auto mr-3 flex font-bold next-m:!hidden">0</div></a></div><!----></div></div><div data-v-a2e7f304="" class="mr-1.5 flex basis-[10%] flex-wrap items-center justify-end"><!----><!----><!----></div></div><div data-v-44bd9554="" data-v-a2e7f304="" class="flex-center flex-col gap-1 border-l border-black-main border-opacity-10 min-w-[60px] max-w-[60px]"><!----><!----><div data-v-44bd9554="" class="flex-center flex-col gap-1 pt-0.5 pb-0.5 border-black-borders min-w-[60px]"><div data-v-44bd9554="" class="cursor-pointer next-m:min-w-[80%] next-m:min-h-[26px] next-m:max-h-[26px] flex justify-center items-center font-bold hover:border hover:border-orange-main min-w-[50px] min-h-[50px]"><p data-v-44bd9554="" class="height-content !text-black-main min-w-[50px] next-m:min-w-[100%] min-h-full flex-center gradient-green hover:!bg-gray-medium default-odds-bg-bgcolor border gradient-green-added-border">2.23</p></div></div><!----></div><div data-v-44bd9554="" data-v-a2e7f304="" class="flex-center flex-col gap-1 border-l border-black-main border-opacity-10 min-w-[60px] max-w-[60px]"><!----><!----><div data-v-44bd9554="" class="flex-center flex-col gap-1 pt-0.5 pb-0.5 border-black-borders min-w-[60px]"><div data-v-44bd9554="" class="cursor-pointer next-m:min-w-[80%] next-m:min-h-[26px] next-m:max-h-[26px] flex justify-center items-center font-bold hover:border hover:border-orange-main min-w-[50px] min-h-[50px]"><p data-v-44bd9554="" class="height-content !text-black-main min-w-[50px] next-m:min-w-[100%] min-h-full flex-center hover:!bg-gray-medium default-odds-bg-bgcolor border gradient-green-added-border">3.17</p></div></div><!----></div><div data-v-44bd9554="" data-v-a2e7f304="" class="flex-center flex-col gap-1 border-l border-black-main border-opacity-10 min-w-[60px] max-w-[60px]"><!----><!----><div data-v-44bd9554="" class="flex-center flex-col gap-1 pt-0.5 pb-0.5 border-black-borders min-w-[60px]"><div data-v-44bd9554="" class="cursor-pointer next-m:min-w-[80%] next-m:min-h-[26px] next-m:max-h-[26px] flex justify-center items-center font-bold hover:border hover:border-orange-main min-w-[50px] min-h-[50px]"><p data-v-44bd9554="" class="height-content !text-black-main min-w-[50px] next-m:min-w-[100%] min-h-full flex-center hover:!bg-gray-medium default-odds-bg-bgcolor border gradient-green-added-border">3.11</p></div></div><!----></div><div data-v-a2e7f304="" class="flex min-w-[35px] flex-col items-center justify-center gap-1 border-l"><div class="flex"><div class="height-content text-black-main text-[10px] leading-5">13</div></div></div></div><!----></a></div>
- """
- html_data_3 = """
- <div data-v-a2e7f304="" id="ddJhk0vp" class="eventRow flex w-full flex-col text-xs" set="71496"><!----><!----><a data-v-a2e7f304="" class="border-black-borders flex cursor-pointer flex-col border-b" href="/football/argentina/reserve-league/san-lorenzo-union-de-santa-fe-ddJhk0vp/"><div data-v-a2e7f304="" class="border-black-borders group flex border-l border-r hover:bg-[#f9e9cc]"><div data-v-a2e7f304="" class="next-m:flex next-m:!mt-0 ml-2 mt-2 w-full"><div data-v-a2e7f304="" class="ml-2 flex"><div data-v-d99de4de="" data-v-a2e7f304="" class="flex basis-[10%]" status-list-ids="4,5,8,9,10,11,69,36,37,44,45,54"><!----><div data-v-d99de4de="" class="next-m:flex-col min-md:flex-row min-md:gap-1 text-gray-dark flex flex-row self-center text-[12px] w-full"><div data-v-d99de4de="" class="flex w-full"><p data-v-d99de4de="">00:00</p><span data-v-d99de4de="" class="next-m:!hidden ml-auto pr-2"></span><!----></div></div><!----></div></div><div data-v-16416b72="" data-v-a2e7f304="" class="align-center my-1 flex w-[100%] basis-[80%] items-center gap-1 pl-2" r-e-s-u-l-t="1:1"><div data-v-16416b72="" class="align-center my-1 flex w-[100%] flex-col items-center gap-1"><div data-v-16416b72="" class="relative flex w-full min-w-[0] flex-col gap-1 text-xs leading-[16px] next-m:!flex-row next-m:!gap-2 justify-center"><a data-v-16416b72="" href="/football/argentina/reserve-league/san-lorenzo-union-de-santa-fe-ddJhk0vp/" class="justify-content flex min-w-0 cursor-pointer items-start justify-start gap-1 next-m:!items-center next-m:!justify-end next-m:!gap-2 w-full" title="San Lorenzo 2"><img data-v-16416b72="" src="/serve/images/team-logo/Men/p44uH9jQ-O45y19v8.png" alt="San Lorenzo 2" class="h-[18px] w-[18px] next-m:!order-3" loading="lazy"><div data-v-16416b72="" class="min-md:truncate whitespace-nowrap group-hover:underline next-m:!ml-auto text-gray-dark"><p data-v-16416b72="" class="participant-name truncate">San Lorenzo 2</p></div><div data-v-16416b72="" class="ml-auto mr-3 flex font-bold next-m:!hidden">1</div></a><div data-v-16416b72="" class="text-gray-dark flex"><div data-v-16416b72="" class="flex gap-1 font-bold font-bold"><div data-v-16416b72="" class="hidden next-m:!flex">1</div><a data-v-16416b72="" class="hidden cursor-pointer next-m:!flex" href="/football/argentina/reserve-league/san-lorenzo-union-de-santa-fe-ddJhk0vp/">–</a><div data-v-16416b72="" class="hidden next-m:!flex">1</div></div><!----></div><a data-v-16416b72="" href="/football/argentina/reserve-league/san-lorenzo-union-de-santa-fe-ddJhk0vp/" class="justify-content flex min-w-[0] cursor-pointer items-center gap-1 next-m:!gap-2 w-full" title="Union de Santa Fe 2"><img data-v-16416b72="" src="/serve/images/team-logo/Men/UJf7FVVE-WhZkcGVr.png" alt="Union de Santa Fe 2" class="h-[18px] w-[18px]" loading="lazy"><div data-v-16416b72="" class="min-md:truncate whitespace-nowrap group-hover:underline text-gray-dark"><p data-v-16416b72="" class="participant-name truncate">Union de Santa Fe 2</p></div><div data-v-16416b72="" class="ml-auto mr-3 flex font-bold next-m:!hidden">1</div></a></div><!----></div></div><div data-v-a2e7f304="" class="mr-1.5 flex basis-[10%] flex-wrap items-center justify-end"><!----><!----><!----></div></div><div data-v-44bd9554="" data-v-a2e7f304="" class="flex-center flex-col gap-1 border-l border-black-main border-opacity-10 min-w-[60px] max-w-[60px]"><!----><!----><div data-v-44bd9554="" class="flex-center flex-col gap-1 pt-0.5 pb-0.5 border-black-borders min-w-[60px]"><div data-v-44bd9554="" class="cursor-pointer next-m:min-w-[80%] next-m:min-h-[26px] next-m:max-h-[26px] flex justify-center items-center font-bold hover:border hover:border-orange-main min-w-[50px] min-h-[50px]"><p data-v-44bd9554="" class="height-content !text-black-main min-w-[50px] next-m:min-w-[100%] min-h-full flex-center hover:!bg-gray-medium default-odds-bg-bgcolor border gradient-green-added-border">1.56</p></div></div><!----></div><div data-v-44bd9554="" data-v-a2e7f304="" class="flex-center flex-col gap-1 border-l border-black-main border-opacity-10 min-w-[60px] max-w-[60px]"><!----><!----><div data-v-44bd9554="" class="flex-center flex-col gap-1 pt-0.5 pb-0.5 border-black-borders min-w-[60px]"><div data-v-44bd9554="" class="cursor-pointer next-m:min-w-[80%] next-m:min-h-[26px] next-m:max-h-[26px] flex justify-center items-center font-bold hover:border hover:border-orange-main min-w-[50px] min-h-[50px]"><p data-v-44bd9554="" class="height-content !text-black-main min-w-[50px] next-m:min-w-[100%] min-h-full flex-center gradient-green hover:!bg-gray-medium default-odds-bg-bgcolor border gradient-green-added-border">3.75</p></div></div><!----></div><div data-v-44bd9554="" data-v-a2e7f304="" class="flex-center flex-col gap-1 border-l border-black-main border-opacity-10 min-w-[60px] max-w-[60px]"><!----><!----><div data-v-44bd9554="" class="flex-center flex-col gap-1 pt-0.5 pb-0.5 border-black-borders min-w-[60px]"><div data-v-44bd9554="" class="cursor-pointer next-m:min-w-[80%] next-m:min-h-[26px] next-m:max-h-[26px] flex justify-center items-center font-bold hover:border hover:border-orange-main min-w-[50px] min-h-[50px]"><p data-v-44bd9554="" class="height-content !text-black-main min-w-[50px] next-m:min-w-[100%] min-h-full flex-center hover:!bg-gray-medium default-odds-bg-bgcolor border gradient-green-added-border">5.82</p></div></div><!----></div><div data-v-a2e7f304="" class="flex min-w-[35px] flex-col items-center justify-center gap-1 border-l"><div class="flex"><div class="height-content text-black-main text-[10px] leading-5">13</div></div></div></div><!----></a></div>
- """
- html_data_4 = """
- <div data-v-a2e7f304="" id="QVNdlKgj" class="eventRow flex w-full flex-col text-xs" set="71496"><!----><!----><a data-v-a2e7f304="" class="border-black-borders flex cursor-pointer flex-col border-b" href="/football/argentina/reserve-league/estudiantes-l-p-racing-club-QVNdlKgj/"><div data-v-a2e7f304="" class="border-black-borders group flex border-l border-r hover:bg-[#f9e9cc]"><div data-v-a2e7f304="" class="next-m:flex next-m:!mt-0 ml-2 mt-2 w-full"><div data-v-a2e7f304="" class="ml-2 flex"><div data-v-d99de4de="" data-v-a2e7f304="" class="flex basis-[10%]" status-list-ids="4,5,8,9,10,11,69,36,37,44,45,54"><!----><div data-v-d99de4de="" class="next-m:flex-col min-md:flex-row min-md:gap-1 text-gray-dark flex flex-row self-center text-[12px] w-full"><div data-v-d99de4de="" class="flex w-full"><p data-v-d99de4de="">00:00</p><span data-v-d99de4de="" class="next-m:!hidden ml-auto pr-2"></span><!----></div></div><!----></div></div><div data-v-16416b72="" data-v-a2e7f304="" class="align-center my-1 flex w-[100%] basis-[80%] items-center gap-1 pl-2" r-e-s-u-l-t="1:2"><div data-v-16416b72="" class="align-center my-1 flex w-[100%] flex-col items-center gap-1"><div data-v-16416b72="" class="relative flex w-full min-w-[0] flex-col gap-1 text-xs leading-[16px] next-m:!flex-row next-m:!gap-2 justify-center"><a data-v-16416b72="" href="/football/argentina/reserve-league/estudiantes-l-p-racing-club-QVNdlKgj/" class="justify-content flex min-w-0 cursor-pointer items-start justify-start gap-1 next-m:!items-center next-m:!justify-end next-m:!gap-2 w-full" title="Estudiantes L.P. 2"><img data-v-16416b72="" src="/serve/images/team-logo/Men/CYBAjqlh-4YeskK87.png" alt="Estudiantes L.P. 2" class="h-[18px] w-[18px] next-m:!order-3" loading="lazy"><div data-v-16416b72="" class="min-md:truncate whitespace-nowrap group-hover:underline next-m:!ml-auto text-gray-dark"><p data-v-16416b72="" class="participant-name truncate">Estudiantes L.P. 2</p></div><div data-v-16416b72="" class="ml-auto mr-3 flex font-bold next-m:!hidden">1</div></a><div data-v-16416b72="" class="text-gray-dark flex"><div data-v-16416b72="" class="flex gap-1 font-bold font-bold"><div data-v-16416b72="" class="hidden next-m:!flex">1</div><a data-v-16416b72="" class="hidden cursor-pointer next-m:!flex" href="/football/argentina/reserve-league/estudiantes-l-p-racing-club-QVNdlKgj/">–</a><div data-v-16416b72="" class="hidden next-m:!flex font-bold">2</div></div><!----></div><a data-v-16416b72="" href="/football/argentina/reserve-league/estudiantes-l-p-racing-club-QVNdlKgj/" class="justify-content flex min-w-[0] cursor-pointer items-center gap-1 next-m:!gap-2 w-full" title="Racing Club 2"><img data-v-16416b72="" src="/serve/images/team-logo/Men/jVlSaiRc-vZhtxHcd.png" alt="Racing Club 2" class="h-[18px] w-[18px]" loading="lazy"><div data-v-16416b72="" class="min-md:truncate whitespace-nowrap group-hover:underline font-bold text-gray-dark"><p data-v-16416b72="" class="participant-name truncate">Racing Club 2</p></div><div data-v-16416b72="" class="ml-auto mr-3 flex font-bold next-m:!hidden font-bold">2</div></a></div><!----></div></div><div data-v-a2e7f304="" class="mr-1.5 flex basis-[10%] flex-wrap items-center justify-end"><!----><!----><!----></div></div><div data-v-44bd9554="" data-v-a2e7f304="" class="flex-center flex-col gap-1 border-l border-black-main border-opacity-10 min-w-[60px] max-w-[60px]"><!----><!----><div data-v-44bd9554="" class="flex-center flex-col gap-1 pt-0.5 pb-0.5 border-black-borders min-w-[60px]"><div data-v-44bd9554="" class="cursor-pointer next-m:min-w-[80%] next-m:min-h-[26px] next-m:max-h-[26px] flex justify-center items-center font-bold hover:border hover:border-orange-main min-w-[50px] min-h-[50px]"><p data-v-44bd9554="" class="height-content !text-black-main min-w-[50px] next-m:min-w-[100%] min-h-full flex-center hover:!bg-gray-medium default-odds-bg-bgcolor border gradient-green-added-border">2.28</p></div></div><!----></div><div data-v-44bd9554="" data-v-a2e7f304="" class="flex-center flex-col gap-1 border-l border-black-main border-opacity-10 min-w-[60px] max-w-[60px]"><!----><!----><div data-v-44bd9554="" class="flex-center flex-col gap-1 pt-0.5 pb-0.5 border-black-borders min-w-[60px]"><div data-v-44bd9554="" class="cursor-pointer next-m:min-w-[80%] next-m:min-h-[26px] next-m:max-h-[26px] flex justify-center items-center font-bold hover:border hover:border-orange-main min-w-[50px] min-h-[50px]"><p data-v-44bd9554="" class="height-content !text-black-main min-w-[50px] next-m:min-w-[100%] min-h-full flex-center hover:!bg-gray-medium default-odds-bg-bgcolor border gradient-green-added-border">3.15</p></div></div><!----></div><div data-v-44bd9554="" data-v-a2e7f304="" class="flex-center flex-col gap-1 border-l border-black-main border-opacity-10 min-w-[60px] max-w-[60px]"><!----><!----><div data-v-44bd9554="" class="flex-center flex-col gap-1 pt-0.5 pb-0.5 border-black-borders min-w-[60px]"><div data-v-44bd9554="" class="cursor-pointer next-m:min-w-[80%] next-m:min-h-[26px] next-m:max-h-[26px] flex justify-center items-center font-bold hover:border hover:border-orange-main min-w-[50px] min-h-[50px]"><p data-v-44bd9554="" class="height-content !text-black-main min-w-[50px] next-m:min-w-[100%] min-h-full flex-center gradient-green hover:!bg-gray-medium default-odds-bg-bgcolor border gradient-green-added-border">3.05</p></div></div><!----></div><div data-v-a2e7f304="" class="flex min-w-[35px] flex-col items-center justify-center gap-1 border-l"><div class="flex"><div class="height-content text-black-main text-[10px] leading-5">13</div></div></div></div><!----></a></div>
- """
- html_data_5 = """
- <div data-v-a2e7f304="" id="EXHB0UY7" class="eventRow flex w-full flex-col text-xs" set="63527"><div data-v-a2e7f304="" class="bg-gray-med_light flex h-[30px] w-full items-center justify-start gap-1"><a href="/football/" class="flex gap-1 text-xs font-normal"><div class="align-center ml-[10px] h-4 w-4 bg-cover ls-football"></div> Football</a><div>/</div><a href="/football/finland/" class="ml-1 flex items-center gap-1 text-xs font-normal"><img src="https://cci2.oddsportal.com/flags/fi.svg" alt="fi" class="align-center h-3 w-[18px] object-cover" loading="lazy"><p class="truncate max-sm:hidden">Finland</p></a><div>/</div><a href="/football/finland/suomen-cup-women/" class="truncate text-xs font-normal">Suomen Cup Women</a></div><div data-v-a2e7f304="" class="border-black-borders bg-gray-light flex w-full min-w-0 border-l border-r"><div class="border-black-borders flex w-full min-w-0 items-center justify-start pl-2"><div class="text-black-main font-main w-full truncate text-xs font-normal leading-5">Today, 01 Sep </div></div><div class="flex"><div class="flex-center border-l text-xs min-w-[60px]">1</div><div class="flex-center border-l text-xs min-w-[60px]">X</div><div class="flex-center border-l text-xs min-w-[60px]">2</div><div class="bg-gray-light flex h-6 min-w-[35px] items-center justify-center border-l text-[10px]">B's</div></div></div><a data-v-a2e7f304="" class="border-black-borders flex cursor-pointer flex-col border-b" href="/football/finland/suomen-cup-women/ilves-kups-EXHB0UY7/"><div data-v-a2e7f304="" class="border-black-borders group flex border-l border-r hover:bg-[#f9e9cc]"><div data-v-a2e7f304="" class="next-m:flex next-m:!mt-0 ml-2 mt-2 w-full"><div data-v-a2e7f304="" class="ml-2 flex"><div data-v-d99de4de="" data-v-a2e7f304="" class="flex basis-[10%]" status-list-ids="4,5,8,9,10,11,69,36,37,44,45,54"><!----><div data-v-d99de4de="" class="next-m:flex-col min-md:flex-row min-md:gap-1 text-gray-dark flex flex-row self-center text-[12px] w-full"><div data-v-d99de4de="" class="flex w-full"><p data-v-d99de4de="">00:00</p><span data-v-d99de4de="" class="next-m:!hidden ml-auto pr-2"></span><!----></div></div><!----></div></div><div data-v-16416b72="" data-v-a2e7f304="" class="align-center my-1 flex w-[100%] basis-[80%] items-center gap-1 pl-2" r-e-s-u-l-t="1:6"><div data-v-16416b72="" class="align-center my-1 flex w-[100%] flex-col items-center gap-1"><div data-v-16416b72="" class="relative flex w-full min-w-[0] flex-col gap-1 text-xs leading-[16px] next-m:!flex-row next-m:!gap-2 justify-center"><a data-v-16416b72="" href="/football/finland/suomen-cup-women/ilves-kups-EXHB0UY7/" class="justify-content flex min-w-0 cursor-pointer items-start justify-start gap-1 next-m:!items-center next-m:!justify-end next-m:!gap-2 w-full" title="Ilves W"><img data-v-16416b72="" src="/serve/images/team-logo/Women/YZFcMxBK-AFAV1OrO.png" alt="Ilves W" class="h-[18px] w-[18px] next-m:!order-3" loading="lazy"><div data-v-16416b72="" class="min-md:truncate whitespace-nowrap group-hover:underline next-m:!ml-auto text-gray-dark"><p data-v-16416b72="" class="participant-name truncate">Ilves W</p></div><div data-v-16416b72="" class="ml-auto mr-3 flex font-bold next-m:!hidden">1</div></a><div data-v-16416b72="" class="text-gray-dark flex"><div data-v-16416b72="" class="flex gap-1 font-bold font-bold"><div data-v-16416b72="" class="hidden next-m:!flex">1</div><a data-v-16416b72="" class="hidden cursor-pointer next-m:!flex" href="/football/finland/suomen-cup-women/ilves-kups-EXHB0UY7/">–</a><div data-v-16416b72="" class="hidden next-m:!flex font-bold">6</div></div><!----></div><a data-v-16416b72="" href="/football/finland/suomen-cup-women/ilves-kups-EXHB0UY7/" class="justify-content flex min-w-[0] cursor-pointer items-center gap-1 next-m:!gap-2 w-full" title="KuPS W"><img data-v-16416b72="" src="/serve/images/team-logo/Women/Yi64h5kQ-lSvRP9Xe.png" alt="KuPS W" class="h-[18px] w-[18px]" loading="lazy"><div data-v-16416b72="" class="min-md:truncate whitespace-nowrap group-hover:underline font-bold text-gray-dark"><p data-v-16416b72="" class="participant-name truncate">KuPS W</p></div><div data-v-16416b72="" class="ml-auto mr-3 flex font-bold next-m:!hidden font-bold">6</div></a></div><!----></div></div><div data-v-a2e7f304="" class="mr-1.5 flex basis-[10%] flex-wrap items-center justify-end"><!----><!----><!----></div></div><div data-v-44bd9554="" data-v-a2e7f304="" class="flex-center flex-col gap-1 border-l border-black-main border-opacity-10 min-w-[60px] max-w-[60px]"><!----><!----><div data-v-44bd9554="" class="flex-center flex-col gap-1 pt-0.5 pb-0.5 border-black-borders min-w-[60px]"><div data-v-44bd9554="" class="cursor-pointer next-m:min-w-[80%] next-m:min-h-[26px] next-m:max-h-[26px] flex justify-center items-center font-bold hover:border hover:border-orange-main min-w-[50px] min-h-[50px]"><p data-v-44bd9554="" class="height-content !text-black-main min-w-[50px] next-m:min-w-[100%] min-h-full flex-center hover:!bg-gray-medium default-odds-bg-bgcolor border gradient-green-added-border">18.64</p></div></div><!----></div><div data-v-44bd9554="" data-v-a2e7f304="" class="flex-center flex-col gap-1 border-l border-black-main border-opacity-10 min-w-[60px] max-w-[60px]"><!----><!----><div data-v-44bd9554="" class="flex-center flex-col gap-1 pt-0.5 pb-0.5 border-black-borders min-w-[60px]"><div data-v-44bd9554="" class="cursor-pointer next-m:min-w-[80%] next-m:min-h-[26px] next-m:max-h-[26px] flex justify-center items-center font-bold hover:border hover:border-orange-main min-w-[50px] min-h-[50px]"><p data-v-44bd9554="" class="height-content !text-black-main min-w-[50px] next-m:min-w-[100%] min-h-full flex-center hover:!bg-gray-medium default-odds-bg-bgcolor border gradient-green-added-border">14.83</p></div></div><!----></div><div data-v-44bd9554="" data-v-a2e7f304="" class="flex-center flex-col gap-1 border-l border-black-main border-opacity-10 min-w-[60px] max-w-[60px]"><!----><!----><div data-v-44bd9554="" class="flex-center flex-col gap-1 pt-0.5 pb-0.5 border-black-borders min-w-[60px]"><div data-v-44bd9554="" class="cursor-pointer next-m:min-w-[80%] next-m:min-h-[26px] next-m:max-h-[26px] flex justify-center items-center font-bold hover:border hover:border-orange-main min-w-[50px] min-h-[50px]"><p data-v-44bd9554="" class="height-content !text-black-main min-w-[50px] next-m:min-w-[100%] min-h-full flex-center gradient-green hover:!bg-gray-medium default-odds-bg-bgcolor border gradient-green-added-border">1.03</p></div></div><!----></div><div data-v-a2e7f304="" class="flex min-w-[35px] flex-col items-center justify-center gap-1 border-l"><div class="flex"><div class="height-content text-black-main text-[10px] leading-5">9</div></div></div></div><!----></a></div>
- """
- # HTML strings
- html_data_list = [html_data_1, html_data_2, html_data_3, html_data_4, html_data_5]
- # Using lxml and XPath
- tree = html.fromstring(html_data_1)
- # Extracting the date from the header
- date = tree.xpath('//h1[@id="next-matches-h1"]/text()')[0]
- # Splitting the date string to get the date part
- date = date.split(", ")[-1]
- data = []
- # Initialize initial values for Country and League
- current_country = None
- current_league = None
- # Iterate through each HTML string in the list
- for html_str in html_data_list:
- # Using lxml and XPath
- tree = html.fromstring(html_str)
- # Extracting match rows
- match_rows = tree.xpath('//div[contains(@class, "eventRow")]')
- # Iterate through each match row
- for match_row in match_rows:
- country = match_row.xpath('.//a[contains(@class, "font-normal")]/p[contains(@class, "truncate")]/text()')
- league = match_row.xpath('.//a[contains(@class, "truncate")]/text()')
- if country:
- current_country = country[0].strip()
- else:
- country = [current_country]
- if league:
- current_league = league[0].strip()
- else:
- league = [current_league]
- team_elements = match_row.xpath('.//div[@data-v-16416b72]/a[@title]')
- game_teams = [element.xpath('.//p[@class="participant-name truncate"]/text()')[0].strip() for element in team_elements]
- game_teams_str = " - ".join(game_teams) # Combine the team names
- time = match_row.xpath('.//div[@data-v-d99de4de]/p/text()')[0].strip()
- score = match_row.xpath('.//div[@data-v-16416b72]/@r-e-s-u-l-t')[0]
- odds = match_row.xpath('.//div[contains(@class, "min-w-[60px]")]/div/p[@data-v-44bd9554]/text()')
- # Append extracted data to the data list
- data.append({
- "Country": country[0], # Take the first element as the value
- "League": league[0], # Take the first element as the value
- "Date": date,
- "Time": time,
- "Game": game_teams_str,
- "Score": score,
- "Home Odds": odds[0],
- "Draw Odds": odds[1],
- "Away Odds": odds[2]
- })
- # Create a DataFrame from the data list
- df = pd.DataFrame(data)
- # Fill down the Country and League columns
- df[['Country', 'League']] = df[['Country', 'League']].ffill()
- # Convert the DataFrame to a formatted table
- table = tabulate(df, headers='keys', tablefmt='pretty')
- # Print the formatted table
- print(table)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement