Advertisement
PyNoob1

Untitled

Sep 1st, 2023
847
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 27.31 KB | None | 0 0
  1. from lxml import html
  2. from bs4 import BeautifulSoup
  3. import pandas as pd
  4. from tabulate import tabulate
  5.  
  6. # Sample HTML data
  7. html_data_1 = """
  8. <h1 class="title font-bold text-black-main font-secondary leading-[30px]" id="next-matches-h1">Next Football Matches: Today, 01 Sep 2023</h1>
  9. """
  10.  
  11. html_data_2 = """
  12. <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>
  13. """
  14.  
  15. html_data_3 = """
  16. <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>
  17. """
  18.  
  19. html_data_4 = """
  20. <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>
  21. """
  22.  
  23. html_data_5 = """
  24. <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>
  25. """
  26.  
  27.  
  28. # HTML strings
  29. html_data_list = [html_data_1, html_data_2, html_data_3, html_data_4, html_data_5]
  30.  
  31. # Using lxml and XPath
  32. tree = html.fromstring(html_data_1)
  33.  
  34. # Extracting the date from the header
  35. date = tree.xpath('//h1[@id="next-matches-h1"]/text()')[0]
  36.  
  37. # Splitting the date string to get the date part
  38. date = date.split(", ")[-1]
  39.  
  40. data = []
  41.  
  42. # Initialize initial values for Country and League
  43. current_country = None
  44. current_league = None
  45.  
  46.  
  47. # Iterate through each HTML string in the list
  48. for html_str in html_data_list:
  49.     # Using lxml and XPath
  50.     tree = html.fromstring(html_str)
  51.  
  52.     # Extracting match rows
  53.     match_rows = tree.xpath('//div[contains(@class, "eventRow")]')
  54.  
  55.     # Iterate through each match row
  56.     for match_row in match_rows:
  57.         country = match_row.xpath('.//a[contains(@class, "font-normal")]/p[contains(@class, "truncate")]/text()')
  58.         league = match_row.xpath('.//a[contains(@class, "truncate")]/text()')
  59.        
  60.         if country:
  61.             current_country = country[0].strip()
  62.         else:
  63.             country = [current_country]
  64.        
  65.         if league:
  66.             current_league = league[0].strip()
  67.         else:
  68.             league = [current_league]
  69.  
  70.         team_elements = match_row.xpath('.//div[@data-v-16416b72]/a[@title]')
  71.         game_teams = [element.xpath('.//p[@class="participant-name truncate"]/text()')[0].strip() for element in team_elements]
  72.         game_teams_str = " - ".join(game_teams)  # Combine the team names
  73.         time = match_row.xpath('.//div[@data-v-d99de4de]/p/text()')[0].strip()
  74.         score = match_row.xpath('.//div[@data-v-16416b72]/@r-e-s-u-l-t')[0]
  75.         odds = match_row.xpath('.//div[contains(@class, "min-w-[60px]")]/div/p[@data-v-44bd9554]/text()')
  76.  
  77.         # Append extracted data to the data list
  78.         data.append({
  79.             "Country": country[0],  # Take the first element as the value
  80.             "League": league[0],    # Take the first element as the value
  81.             "Date": date,
  82.             "Time": time,
  83.             "Game": game_teams_str,
  84.             "Score": score,
  85.             "Home Odds": odds[0],
  86.             "Draw Odds": odds[1],
  87.             "Away Odds": odds[2]
  88.         })
  89.  
  90. # Create a DataFrame from the data list
  91. df = pd.DataFrame(data)
  92.  
  93. # Fill down the Country and League columns
  94. df[['Country', 'League']] = df[['Country', 'League']].ffill()
  95.  
  96. # Convert the DataFrame to a formatted table
  97. table = tabulate(df, headers='keys', tablefmt='pretty')
  98.  
  99. # Print the formatted table
  100. print(table)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement