guanjun.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. # -*- coding: utf-8 -*-
  2. import copy
  3. import json
  4. import scrapy
  5. from scrapy.http import Request
  6. from .. items import Guanjun
  7. class LqguanjunSpider(scrapy.Spider):
  8. name = 'guanjun'
  9. allowed_domains = ['hg3535z.com']
  10. custom_settings = {
  11. "ITEM_PIPELINES": {
  12. 'hg3535.pipelines.Guanjunpipeline': 300,
  13. },
  14. 'LOG_LEVEL': 'DEBUG',
  15. 'LOG_FILE': '../hg3535/Log/guanjun.log'
  16. }
  17. def start_requests(self):
  18. for z in range(1, 5):
  19. for y in range(1, 4):
  20. for x in range(0, 4):
  21. url = 'https://hg3535z.com/odds2/d/getodds?sid=' + str(z) + '&pt=' + str(y) + '&ubt=or&pn=' + str(
  22. x) + '&sb=2&dc=null&pid=0'
  23. # yield Request(url=url, callback=self.parse, meta={'pt': y, 'sid': z}, dont_filter=True)
  24. yield Request(url=url, callback=self.parse, meta={'pt': y, 'sid': z}, dont_filter=True)
  25. def parse(self, response):
  26. try:
  27. datas = json.loads(response.text)
  28. except:
  29. datas = ""
  30. try:
  31. results = datas['n-ot']['egs']
  32. except:
  33. results = ""
  34. try:
  35. pt = copy.copy(response.meta['pt'])
  36. except:
  37. pt = 0
  38. try:
  39. ball = datas['n-ot']['s']['n']
  40. except:
  41. ball = ""
  42. if results:
  43. for result in results:
  44. # 联赛id
  45. league_id = result['c']['k']
  46. # 联赛名
  47. league_name = result['c']['n']
  48. new_results = result['es']
  49. for new_result in new_results:
  50. data_game = new_result['i'][4]
  51. time_game = new_result['i'][5]
  52. new_league_name = new_result['egn'].replace('\t', '')
  53. for i in new_result['n-o']:
  54. new_champion = i['mn']
  55. for y in i['o']:
  56. item = Guanjun()
  57. game_id = str(new_result['i'][16])
  58. tema_home = y[0]
  59. champion_team = float(y[2]) - 1
  60. item['league_name'] = league_name
  61. item['tema_home'] = tema_home
  62. item['league_id'] = league_id
  63. item['game_id'] = game_id
  64. item['data_game'] = data_game
  65. item['time_game'] = time_game
  66. item['new_league_name'] = new_league_name
  67. item['champion_team'] = champion_team
  68. item['new_champion'] = new_champion
  69. item['pt'] = pt
  70. item['ball'] = ball
  71. yield item