| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- # -*- coding: utf-8 -*-
- # -*- coding: utf-8 -*-
- import copy
- import json
- import scrapy
- from scrapy.http import Request
- from ..items import Wangqiu
- class LanqiuSpider(scrapy.Spider):
- name = "wangqiu"
- allowed_domains = ['hg3535z.com']
- custom_settings = {
- "ITEM_PIPELINES": {
- "hg3535.pipelines.Wangqiupipeline": 300,
- }
- }
- def start_requests(self):
- # newall_lists = ['am', 'ftht1x2', 'oe', 'tg', 'htft', 'cs', 'fglg', 'or']
- for y in range(1, 4):
- url = 'https://hg3535z.com/odds2/d/getodds?sid=3&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})
- # http://hg3535z.com/odds2/d/getamodds?eid=3120299&iip=false&ubt=am&isp=false
- 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:
- item = Wangqiu()
- # 比赛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['wq_concede_home'] = concedes[1]
- concedes_dict_rule['wq_concede_guest'] = concedes[3]
- if pt is 3:
- concedes_dict['wq_concede_home'] = float(concedes[5]) - 1
- concedes_dict['wq_concede_guest'] = float(concedes[7]) - 1
- else:
- concedes_dict['wq_concede_guest'] = concedes[7]
- concedes_dict['wq_concede_home'] = float(concedes[5])
- except:
- concedes_dict_rule['wq_concede_home'] = ""
- concedes_dict['wq_concede_home'] = ""
- concedes_dict_rule['wq_concede_guest'] = ""
- concedes_dict['wq_concede_guest'] = ""
- # ---------------------------------------------------冠军----------------------------------------------------------------
- kemps_dict = {}
- try:
- kemps = result['o']["ml"]["v"]
- kemps_dict['wq_kemp_home'] = kemps[1]
- kemps_dict['wq_kemp_guest'] = kemps[3]
- except:
- kemps_dict['wq_kemp_home'] = ""
- kemps_dict['wq_kemp_guest'] = ""
- # 第一盘 冠军
- try:
- kemps = result['o']["mls1"]["v"]
- kemps_dict['wq_one_kemp_home'] = kemps[1]
- kemps_dict['wq_one_kemp_guest'] = kemps[3]
- except:
- kemps_dict['wq_one_kemp_home'] = ""
- kemps_dict['wq_one_kemp_guest'] = ""
- # ---------------------------------------------------让局---------------------------------------------------------------
- bureaus_dict = {}
- bureaus_dict_rule = {}
- try:
- bureaus = result['o']["ahfts"]["v"]
- bureaus_dict_rule['wq_bureau_home'] = bureaus[1]
- bureaus_dict_rule['wq_bureau_guest'] = bureaus[3]
- if pt is 3:
- bureaus_dict['wq_bureau_home'] = float(bureaus[5]) - 1
- bureaus_dict['wq_bureau_guest'] = float(bureaus[7]) - 1
- else:
- bureaus_dict['wq_bureau_home'] = bureaus[5]
- bureaus_dict['wq_bureau_guest'] = bureaus[7]
- except:
- bureaus_dict_rule['wq_bureau_home'] = ""
- bureaus_dict['wq_bureau_home'] = ""
- bureaus_dict_rule['wq_bureau_guest'] = ""
- bureaus_dict['wq_bureau_guest'] = ""
- # -----------------------------------------------------总局数:大/小------------------------------------------------------
- total_number_dict = {}
- total_number_dict_rule = {}
- try:
- total_numbers = result['o']["oufts"]["v"]
- total_number_dict_rule['wq_total_number_big'] = total_numbers[1]
- total_number_dict_rule['wq_total_number_small'] = total_numbers[3]
- if pt is 3:
- total_number_dict['wq_total_number_big'] = float(total_numbers[5]) - 1
- total_number_dict['wq_total_number_small'] = float(total_numbers[7]) - 1
- else:
- total_number_dict['wq_total_number_big'] = total_numbers[5]
- total_number_dict['wq_total_number_small'] = total_numbers[7]
- except:
- total_number_dict_rule['wq_total_number_big'] = ""
- total_number_dict['wq_total_number_big'] = ""
- total_number_dict_rule['wq_total_number_small'] = ""
- total_number_dict['wq_total_number_small'] = ""
- # ------------------------------------------------------总局数:单/双-----------------------------------------------------
- odd_evens_dict = {}
- odd_evens_dict_rule = {}
- try:
- odd_evens = result['o']["oefts"]["v"]
- # 上半场 主队让球条件
- odd_evens_dict['wq_two_sides_single'] = odd_evens[1]
- odd_evens_dict_rule['wq_two_sides_single'] = "单"
- odd_evens_dict['wq_two_sides_double'] = odd_evens[3]
- odd_evens_dict_rule['wq_two_sides_double'] = "双"
- except:
- odd_evens_dict['wq_two_sides_single'] = ""
- odd_evens_dict['wq_two_sides_single'] = ""
- odd_evens_dict_rule['wq_two_sides_double'] = ""
- odd_evens_dict_rule['wq_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['kemps_dict'] = kemps_dict
- # 让局
- item['bureaus_dict'] = bureaus_dict
- item['bureaus_dict_rule'] = bureaus_dict_rule
- # 总局数大小
- item['total_number_dict'] = total_number_dict
- item['total_number_dict_rule'] = total_number_dict_rule
- # 总局数单双
- item['odd_evens_dict'] = odd_evens_dict
- item['odd_evens_dict_rule'] = odd_evens_dict_rule
- yield item
|