# -*- coding: utf-8 -*- import copy import json import scrapy from scrapy.http import Request from ..items import Bangqiu class BqrangqiuSpider(scrapy.Spider): name = 'bangqiu' allowed_domains = ['hg3535z.com'] custom_settings = { "ITEM_PIPELINES": { "hg3535.pipelines.Bangqiupipeline": 300, } } def start_requests(self): for y in range(1, 4): url = 'https://hg3535z.com/odds2/d/getodds?sid=4&pt=' + str(y) + '&ubt=am&pn=0&sb=2&dc=null&pid=0' yield scrapy.Request(url=url, callback=self.parse, meta={'pt': y, 'dont_redirect': True}) def parse(self, response): if response.text: try: datas = json.loads(response.text).get('n-ot', "").get('egs', "") except: datas = "" try: pt = copy.copy(response.meta['pt']) except: pt = 0 if datas: for result in datas: new_results = result['es'] for new_result in new_results: game_id = str(new_result['i'][16]) if pt == 1: url = "https://hg3535z.com/odds2/d/getamodds?eid=" + game_id + "iip=false&ubt=am&isp=false" yield Request(url=url, callback=self.parse_each, meta={'pt': pt}) if pt == 2: url = "https://hg3535z.com/odds2/d/getamodds?eid=" + game_id + "iip=false&ubt=am&isp=false" yield Request(url=url, callback=self.parse_each, meta={'pt': pt}) if pt == 3: url = "https://hg3535z.com/odds2/d/getamodds?eid=" + game_id + "iip=false&ubt=am&isp=true" yield Request(url=url, callback=self.parse_each, meta={'pt': pt}) def parse_each(self, response): try: new_datas = json.loads(response.text)['eg'] except: new_datas = "" try: pt = response.meta['pt'] except: pt = 0 if new_datas: # 联赛id league_id = new_datas["c"]["k"] # 联赛名 league_name = new_datas["c"]["n"] new_data = new_datas["es"] for result in new_data: if result['pci']["ctid"] == 0: item = Bangqiu() # 比赛id game_id = str(result['k']) # 球队1 team_home = result['i'][0] # 球队2 team_guest = result['i'][1] # 数量(97>) number = result['i'][2] # 比赛状态 zhuangtai = result['i'][3] # 日期 data_game = result['i'][4] # 开赛时间 time_game = result['i'][5] # 队1分数 score_home1 = result['i'][10] # 队2分数 score_guest1 = result['i'][11] # 第几盘 jijie = result['i'][12] # 球队得分 qiudui = result['pci'].get('ctn', "") # --------------------------------------------------让球分割线----------------------------------------------------------- concedes_dict = {} concedes_dict_rule = {} try: concedes = result['o']["ah"]["v"] # concedes_dict_rule['bq_concede_home'] = concedes[1] home_rule = concedes[1] if home_rule.startswith('+'): n_home_rule = home_rule.replace('+', '-') concedes_dict_rule['bq_concede_home'] = n_home_rule if home_rule.startswith('-'): n_home_rule = home_rule.replace('-', '+') concedes_dict_rule['bq_concede_home'] = n_home_rule else: concedes_dict_rule['bq_concede_home'] = home_rule concedes_dict['bq_concede_home'] = concedes[5] # concedes_dict_rule['bq_concede_guest'] = concedes[3] guest_rule = concedes[3] if guest_rule.startswith('+'): n_guest_rule = home_rule.replace('+', '-') concedes_dict_rule['bq_concede_guest'] = n_guest_rule if guest_rule.startswith('-'): n_guest_rule = home_rule.replace('-', '+') concedes_dict_rule['bq_concede_guest'] = n_guest_rule else: concedes_dict_rule['bq_concede_guest'] = guest_rule concedes_dict['bq_concede_guest'] = concedes[7] except: concedes_dict_rule['bq_concede_home'] = "" concedes_dict['bq_concede_home'] = "" concedes_dict_rule['bq_concede_guest'] = "" concedes_dict['bq_concede_guest'] = "" # 让球 前5局------------------------------------------------------------------------------------------------------------- try: concedes = result['o']["ahf5in"]["v"] # concedes_dict_rule['bq_five_concede_home'] = concedes[1] home_rule = concedes[1] if home_rule.startswith('+'): n_home_rule = home_rule.replace('+', '-') concedes_dict_rule['bq_five_concede_home'] = n_home_rule if home_rule.startswith('-'): n_home_rule = home_rule.replace('-', '+') concedes_dict_rule['bq_five_concede_home'] = n_home_rule else: concedes_dict_rule['bq_five_concede_home'] = home_rule concedes_dict['bq_five_concede_home'] = concedes[5] # concedes_dict_rule['bq_five_concede_guest'] = concedes[3] guest_rule = concedes[3] if guest_rule.startswith('+'): n_guest_rule = home_rule.replace('+', '-') concedes_dict_rule['bq_five_concede_guest'] = n_guest_rule if guest_rule.startswith('-'): n_guest_rule = home_rule.replace('-', '+') concedes_dict_rule['bq_five_concede_guest'] = n_guest_rule else: concedes_dict_rule['bq_five_concede_guest'] = guest_rule concedes_dict['bq_five_concede_guest'] = concedes[7] except: concedes_dict_rule['bq_five_concede_home'] = "" concedes_dict['bq_five_concede_home'] = "" concedes_dict_rule['bq_five_concede_guest'] = "" concedes_dict['bq_five_concede_guest'] = "" # ---------------------------------------------------独赢---------------------------------------------------------------- capots_dict = {} try: capots = result['o']["ml"]["v"] capots_dict['bq_capot_home'] = capots[1] capots_dict['bq_capot_guest'] = capots[3] except: capots_dict['bq_capot_home'] = "" capots_dict['bq_capot_guest'] = "" # ---------------------------------------------------总得分:大/小-------------------------------------------------------- total_size_dict = {} total_size_dict_rule = {} try: total_sizes = result['o']["ou"]["v"] total_size_dict_rule['bq_total_number_big'] = total_sizes[1] total_size_dict['bq_total_number_big'] = total_sizes[5] total_size_dict_rule['bq_total_number_small'] = total_sizes[3] total_size_dict['bq_total_number_small'] = total_sizes[7] except: total_size_dict_rule['bq_total_number_big'] = "" total_size_dict['bq_total_number_big'] = "" total_size_dict_rule['bq_total_number_small'] = "" total_size_dict['bq_total_number_small'] = "" # 总得分: 大/小 前5局----------------------------------------------------------------------------------------------------- try: total_sizes = result['o']["ouf5in"]["v"] total_size_dict_rule['bq_five_total_number_big'] = total_sizes[1] total_size_dict['bq_five_total_number_big'] = total_sizes[5] total_size_dict_rule['bq_five_total_number_small'] = total_sizes[3] total_size_dict['bq_five_total_number_small'] = total_sizes[7] except: total_size_dict_rule['bq_five_total_number_big'] = "" total_size_dict['bq_five_total_number_big'] = "" total_size_dict_rule['bq_five_total_number_small'] = "" total_size_dict['bq_five_total_number_small'] = "" # ------------------------------------------------------总得分:单/双----------------------------------------------------- odd_evens_dict = {} odd_evens_dict_rule = {} try: odd_evens = result['o']["oe"]["v"] # 上半场 主队让球条件 odd_evens_dict['bq_two_sides_single'] = odd_evens[1] odd_evens_dict_rule['bq_two_sides_single'] = "单" odd_evens_dict['bq_two_sides_double'] = odd_evens[3] odd_evens_dict_rule['bq_two_sides_double'] = "双" except: odd_evens_dict['bq_two_sides_single'] = "" odd_evens_dict['bq_two_sides_single'] = "" odd_evens_dict_rule['bq_two_sides_double'] = "" odd_evens_dict_rule['bq_two_sides_double'] = "" # 联赛id item['league_id'] = league_id # 联赛名 item['league_name'] = league_name # 比赛id item['game_id'] = game_id # 球队1 item['team_home'] = team_home # 球队2 item['team_guest'] = team_guest # 数量(97>) item['number'] = number # 比赛状态 item['zhuangtai'] = zhuangtai # 日期 item['data_game'] = data_game # 开赛时间 item['time_game'] = time_game # 队1分数 item['score_home'] = score_home1 # 队2分数 item['score_guest'] = score_guest1 # 第几节 item['jijie'] = jijie item['pt'] = pt # 球队得分 item['qiudui'] = qiudui # 让球 item['concedes_dict'] = concedes_dict item['concedes_dict_rule'] = concedes_dict_rule # 独赢 item['capots_dict'] = capots_dict # 总得分:大/小 item['total_size_dict'] = total_size_dict item['total_size_dict_rule'] = total_size_dict_rule # 总得分:单/双 item['odd_evens_dict'] = odd_evens_dict item['odd_evens_dict_rule'] = odd_evens_dict_rule yield item