import sys sys.path.append("/root/documents/py_scripts") from typing import Optional from furl import furl from requests_html import HTML, HTMLSession class Jczq(object): ''' 竞彩足球赔率获取 ''' _base_url = furl("https://trade.500.com/jczq/?g=2") def __init__(self, date_str): self.session = HTMLSession() self._base_url.args["date"] = date_str def get_spf_odds(self, d: Optional[str]=None): self._base_url.args["playid"] = 312 if d is not None: self._base_url.args["date"] = d # print(self._base_url.url) r = self.session.get(self._base_url) bet_trs = r.html.find("tr.bet-tb-tr") print(len(bet_trs)) bet_more_trs = r.html.find("tr.bet-more-wrap") print(len(bet_more_trs)) for tr in zip(bet_trs, bet_more_trs): # 对应竞彩网matchId match_id = tr[0].attrs["data-id"] match_num = tr[0].attrs["data-matchnum"] league_name = tr[0].attrs["data-simpleleague"] home_name = tr[0].attrs["data-homesxname"] away_name = tr[0].attrs["data-awaysxname"] match_date = tr[0].attrs["data-matchdate"] + tr[0].attrs["data-matchtime"] buyendtime = tr[0].attrs["data-buyendtime"] rangqiu = tr[0].attrs["data-rangqiu"] # 胜平负 nspf = tr[0].find("td.td-betbtn div.itm-rangB1", first=True) betbtn_ok = nspf.find("p[class$='betbtn-ok']", first=True) if betbtn_ok is not None: result = betbtn_ok.attrs["data-value"] nspf_odds = {i.attrs["data-value"]: i.attrs["data-sp"] for i in nspf.find("p.betbtn")} # 让球胜平负 spf = tr[0].find("td.td-betbtn div.itm-rangB2", first=True) rq_result = spf.find("p[class$='betbtn-ok']", first=True).attrs["data-value"] spf_odds = {i.attrs["data-value"]: i.attrs["data-sp"] for i in spf.find("p.betbtn")} # 半全场 bqc = tr[1].find("p[data-type='bqc']") bqc_odds = {i.attrs["data-value"]: i.attrs["data-sp"] for i in bqc} bqc_result = tr[1].find("p[class$='sbetbtn-ok'][data-type='bqc']", first=True).attrs["data-value"] # 比分 bf = tr[1].find("p[data-type='bf']") bf_odds = {i.attrs["data-value"]: i.attrs["data-sp"] for i in bf} bf_result = tr[1].find("p[class$='sbetbtn-ok'][data-type='bf']", first=True).attrs["data-value"] # 进球数 jqs = tr[1].find("p[data-type='jqs']") jqs_odds = {i.attrs["data-value"]: i.attrs["data-sp"] for i in jqs} jqs_result = tr[1].find("p[class$='sbetbtn-ok'][data-type='jqs']", first=True).attrs["data-value"] print(f"{home_name}-{away_name} 赔率:{nspf_odds}, 结果:{result}, 比分:{bf_result},比分赔率:{bf_odds}") jczq = Jczq("2023-04-15") jczq.get_spf_odds()