🌐
Oddsportal.com
oddsportal1.com › next football matches: today, 27 sep 2024
Football Matches Today | Odds Portal
Follow every Football match today - fixtures, results, live scores and odds. Keep track of every Football Matches Today with Odds Portal.
🌐
ZoomInfo
zoominfo.com › c › oddsportalcom › 351104467
OddsPortal - Overview, News & Competitors | ZoomInfo.com
View OddsPortal (www.oddsportal.com) location in Italy , revenue, industry and description. Find related and similar companies as well as employees by title and much more.
🌐
RebelBetting
rebelbetting.com › home
OddsPortal official Partner - Value & Sure betting by RebelBetting
February 1, 2024 - OddsPortal recommends RebelBetting if you're looking to outsmart the bookmakers and make money on sports using value betting & sure betting.
🌐
Oddsportal
oddsportal.com › football betting odds comparison
Football Betting Odds | Odds Portal
Free Football Odds Comparison from Odds Portal. Select your Top Football Betting Picks Today.
🌐
Moreofit
moreofit.com › similar-to › www.oddsportal.com › Top_10_Sites_Like_Oddsportal
14 Popular Sites Like Oddsportal (Updated: Nov 13th, 2024) | ...
Our team has explored the www and uncovered a lot of quality betting and odds sites like Oddsportal. So come and discover more sites that are related to Oddsportal.
🌐
Oddsportal.com
oddsportal1.com
Odds Comparison, Sports Betting Odds | Odds Portal
Sports odds comparison service at Odds Portal lets you compare sports betting odds & betting lines from 80+ major bookmakers. Bet at the biggest odds now!
🌐
Reddit
reddit.com › r/webscraping › scraping oddsportal?
r/webscraping on Reddit: Scraping Oddsportal?

Yeah sure man hit me up on discord and gimme your discord id

🌐
Guardmemorial
guardmemorial.com › oddsportal-19
Odds Portal: Odds Comparison, Sports Betting Odds: oddsportal
Since 1912 thousands of men and women have served in the Kentucky National Guard · Hundreds of them have perished -- some on foreign battlefields, some on missions here in Kentucky to save fellow citizens from danger and disaster and some perished training to accomplish their missions
🌐
Oddsportal
oddsportal.com › sports betting community › top predictions
Football Predictions - Top User Predictions on Odds Portal
Follow the top Football Predictions from all users on Odds Portal. Compare your football prediction skills. Register and make predictions yourself.
🌐
Webrate
webrate.org › site › oddsportal.com
oddsportal.com ▷ Odds Portal: Odds Comparison, Sports Betting Odds
Sports odds comparison service at Odds Portal lets you compare sports betting odds & betting lines from 80+ major bookmakers. Bet at the biggest odds now!
🌐
Dribbble
dribbble.com › tags › oddsportal
Oddsportal designs, themes, templates and downloadable graphic ...
Discover 3 Oddsportal designs on Dribbble. Your resource to discover and connect with designers worldwide.
🌐
Facebook
facebook.com › OddsPortal › about
OddsPortal.com - About | Facebook
OddsPortal.com. 20,252 likes · 5 talking about this. OddsPortal - Betting Odds Comparison Service. Check the latest betting offers and compare odds 80+ major bookmakers.
🌐
Stack Overflow
stackoverflow.com › questions › 64393605 › scraping-data-from-oddsportal-com-with-python
Scraping data from oddsportal.com with Python - Stack Overflow

The data is out there for grabs, all you need to do is get a good look at what's going on behind the scenes. How? Use the Developer Tool and inspect the requests. You'll surely notice that are two that have what you need:

  • the bookies request -> https://www.oddsportal.com/res/x/bookies-201014103652-1602877009.js
  • the data request -> https://fb.oddsportal.com/feed/match/1-1-ld9FDhEI-1-2-yje1c.dat?_=1603009421226

The first one uses current time in seconds, and the other one in milliseconds. You have to swap that each time you make a request.

The bookies request is a mapping of all bookies from the site. This is how I got the 1xBet code, which is 417. You can easily map that with the odds data, for example, to fetch all history bets for a given bookie and/or bookies. There are plenty of possibilities here.

The odds request is, well, all the data that you see in those tables.

Then, you need to do a bit of regex to grab the JSON data that comes back with those two requests.

Finally, you can start poking around the payload and get what you need. For example, let say you're after 1xBet and the X column. So you'd expect something like this:

1xBet - 2.61 3.5 2.88

and the history for the X column (here with value 3.5 above) could look something like this:

2020-10-18 05:03:45 - 3.58
2020-10-18 04:29:41 - 3.54
2020-10-18 02:53:17 - 3.56
2020-10-17 22:25:56 - 3.58
2020-10-17 17:13:53 - 3.60
2020-10-17 13:03:37 - 3.64
2020-10-17 10:12:06 - 3.66
and so on...

So, putting this all together, here's what I've come up with:

import json
import re
import time
from datetime import datetime

import requests


headers = {
    "accept": "*/*",
    "accept-encoding": "gzip, deflate, br",
    "accept-language": "en-US,en;q=0.9,pl;q=0.8",
    "referer": "https://www.oddsportal.com/",
    "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.99 Safari/537.36"
}


def get_response(url: str) -> str:
    return requests.get(url, headers=headers).text


time_now_s = int(time.time())
time_now_ms = int(round(time.time() * 1000))

bookies_js = f"https://www.oddsportal.com/res/x/bookies-201014103652-{time_now_s}.js"
odds_data_js = f"https://fb.oddsportal.com/feed/match/1-1-ld9FDhEI-1-2-yje1c.dat?_={time_now_ms}"

bookies = json.loads(re.findall(r'bookmakersData=({.*});var', get_response(bookies_js))[0])
odds_data = json.loads(re.findall(r"\.dat',\s({.*})", get_response(odds_data_js))[0])

bookie = bookies['417']['WebName']  # 417 is 1xBet's code
bookies_odds = odds_data['d']['oddsdata']['back']['E-1-2-0-0-0']['odds']['417']  # current odds for a bookie
odds_sorted = dict(sorted(bookies_odds.items())).values()  # sorted as on the website 1 - X - 2

print(f"{bookie} - {' '.join(str(i) for i in odds_sorted)}")


history_columns = {
    "1": "4ccecxv464x0xbcsm1",  # 1 column
    "2": "4ccecxv464x0xbcsm2",  # 2 column
    "X": "4ccecxv498x0x0",  # X column
}

# odds history for the X column for a given bookie
history_data = odds_data['d']['history']['back'][history_columns['X']]['417']
for item in history_data:
    value, _, timestamp = item
    print(f"{datetime.fromtimestamp(timestamp)} - {value}")

Outputs:

1xBet - 2.61 3.5 2.88
2020-10-18 05:03:45 - 3.58
2020-10-18 04:29:41 - 3.54
2020-10-18 02:53:17 - 3.56
2020-10-17 22:25:56 - 3.58
2020-10-17 17:13:53 - 3.60
2020-10-17 13:03:37 - 3.64
2020-10-17 10:12:06 - 3.66
2020-10-17 09:58:04 - 3.64
2020-10-17 08:38:52 - 3.62
2020-10-17 08:08:54 - 3.64
2020-10-17 07:44:47 - 3.62
2020-10-17 06:17:33 - 3.64
2020-10-17 06:07:36 - 3.62
2020-10-17 00:04:35 - 3.64
2020-10-16 23:54:39 - 3.62
2020-10-16 23:38:40 - 3.64
2020-10-16 18:54:48 - 3.62
2020-10-16 15:14:17 - 3.64
2020-10-16 13:27:06 - 3.66
2020-10-01 21:43:39 - 3.40

Which is what you see on the web page for 1xBet for column X once you hoover over the value.

Tip: if you ever run into the missing oddsdata key problem, take a look a the Developer Tool and see if the endpoint has changed. See this:

Just grab the new endpoint https://fb.oddsportal.com/feed/postmatchscore/1-ld9FDhEI-yje1c.dat?_= or better yet go for this part yje1c part only and swap it with the one in the code.

Answer from baduker on stackoverflow.com
🌐
Fortimedesign
fortimedesign.com › oddsportal-28
Odds Portal: Odds Comparison, Sports Betting Odds: oddsportal
Error. Page cannot be displayed. Please contact your service provider for more details. (17)
🌐
Siteconfiavel
siteconfiavel.com.br › site › oddsportal-com
Oddsportal.com é confiável? Oddsportal é segura? | Site Confiável
Encontrei isso e lembrei de você. Antes de comprar ou acessar o site oddsportal.com veja essas informações:
🌐
Vseprosport
vseprosport.ru › guide › software › obzor-sajta-oddsportal
Как пользоваться сайтом oddsportal | ...
Обзор сайта oddsportal для ставок на спорт. Чем полезен сайт oddsportal для клиента букмекерской конторы. Как правильно пользоваться сайтом oddsportal.