|
|
@@ -12,7 +12,7 @@ class ZuqiuSpider(scrapy.Spider):
|
|
|
allowed_domains = ['m.hgg070.com']
|
|
|
custom_settings = {
|
|
|
"ITEM_PIPELINES": {
|
|
|
- "hgg070_spider.pipelines.zuqiu.ZuqiuPipeline": 200,
|
|
|
+ # "hgg070_spider.pipelines.zuqiu.ZuqiuPipeline": 200,
|
|
|
},
|
|
|
# 'LOG_LEVEL': 'DEBUG',
|
|
|
# 'LOG_FILE': cpath + "/log/sports_{}_{}_{}.log".format(to_day.year, to_day.month, to_day.day)
|
|
|
@@ -35,12 +35,12 @@ class ZuqiuSpider(scrapy.Spider):
|
|
|
def start_requests(self):
|
|
|
url = "http://m.hgg070.com/app/member/get_league_list.php"
|
|
|
h_types = [('FT', '', '130'), ('FU', 'P', '131'), ('FU', "", '130'), ('FU', 'P', '131')]
|
|
|
- for h_type in h_types:
|
|
|
- # show_type, isp, length = h_type
|
|
|
- show_type, isp, length = h_types[3]
|
|
|
+ # for h_type in h_types:
|
|
|
+ for i, h_type in enumerate(h_types):
|
|
|
+ show_type, isp, length = h_type
|
|
|
self.headers['Content-Length'] = length
|
|
|
from_data = {
|
|
|
- 'uid': '013dc3a00cbd488238236010f78ab4a41af7e6ff05ceb96bc0854b60807a42eb',
|
|
|
+ 'uid': 'a76428ffc4d1ca306ea354d3ff5013bb8095c8d4101e7ce76db97f63ff061729',
|
|
|
'langx': 'zh-cn',
|
|
|
'ltype': '3',
|
|
|
'gtype': 'FT',
|
|
|
@@ -50,24 +50,19 @@ class ZuqiuSpider(scrapy.Spider):
|
|
|
'isP': isp
|
|
|
}
|
|
|
yield scrapy.FormRequest(url=url, formdata=from_data, callback=self.parse, headers=self.headers,
|
|
|
- meta={'showtype': show_type, 'isp': isp}, dont_filter=True)
|
|
|
+ meta={'showtype': show_type, 'isp': isp, 'index': i}, dont_filter=True)
|
|
|
|
|
|
def parse(self, response):
|
|
|
- if response.status == 400:
|
|
|
- print(response.status)
|
|
|
- print('parse', response.url)
|
|
|
leagues = response.xpath('//serverresponse/game/league')
|
|
|
url = 'http://m.hgg070.com/app/member/get_game_list.php'
|
|
|
if leagues:
|
|
|
showtype = response.meta['showtype']
|
|
|
isp = response.meta['isp']
|
|
|
- if showtype == 'FT' and isp == '':
|
|
|
+ index = response.meta['index']
|
|
|
+ if index == 0:
|
|
|
date = ''
|
|
|
self.headers['Content-Length'] = '147'
|
|
|
- elif showtype == 'FU' and isp == 'P':
|
|
|
- date = 'all'
|
|
|
- self.headers['Content-Length'] = '151'
|
|
|
- elif showtype == 'FU' and isp == '':
|
|
|
+ elif index == 2:
|
|
|
date = 'all'
|
|
|
self.headers['Content-Length'] = '150'
|
|
|
else:
|
|
|
@@ -76,7 +71,7 @@ class ZuqiuSpider(scrapy.Spider):
|
|
|
for league in leagues:
|
|
|
lid = league.xpath('.//league_id/text()').extract_first()
|
|
|
from_data = {
|
|
|
- 'uid': '013dc3a00cbd488238236010f78ab4a41af7e6ff05ceb96bc0854b60807a42eb',
|
|
|
+ 'uid': 'a76428ffc4d1ca306ea354d3ff5013bb8095c8d4101e7ce76db97f63ff061729',
|
|
|
'langx': 'zh-cn',
|
|
|
'ltype': '3',
|
|
|
'gtype': 'FT',
|
|
|
@@ -87,35 +82,60 @@ class ZuqiuSpider(scrapy.Spider):
|
|
|
'isP': isp
|
|
|
}
|
|
|
yield scrapy.FormRequest(url=url, formdata=from_data, callback=self.parse_match, headers=self.headers,
|
|
|
- meta={'showtype': showtype, 'isp': isp}, dont_filter=True)
|
|
|
+ meta={'showtype': showtype, 'isp': isp, 'index': index}, dont_filter=True)
|
|
|
else:
|
|
|
print('未获取到联赛id')
|
|
|
return
|
|
|
|
|
|
def parse_match(self, response):
|
|
|
+ # showtype = response.meta['showtype']
|
|
|
+ # isp = response.meta['isp']
|
|
|
+ index = response.meta['index']
|
|
|
if response.status == 400:
|
|
|
print(response.status)
|
|
|
- print('parse_match', response.url)
|
|
|
+ # print(showtype, isp)
|
|
|
+ print('parse_odds', response.url)
|
|
|
+ pass
|
|
|
url = 'http://m.hgg070.com/app/member/get_game_more.php'
|
|
|
- showtype = response.meta['showtype']
|
|
|
- isp = response.meta['isp']
|
|
|
- if showtype == 'FT' and isp == '':
|
|
|
+ if index == 0:
|
|
|
date = ''
|
|
|
+ showtype = 'FT'
|
|
|
+ isp = ''
|
|
|
self.headers['Content-Length'] = '132'
|
|
|
- elif showtype == 'FU' and isp == 'P':
|
|
|
+ elif index == 1:
|
|
|
date = 'all'
|
|
|
+ showtype = 'FT'
|
|
|
+ isp = 'P'
|
|
|
self.headers['Content-Length'] = '136'
|
|
|
- elif showtype == 'FU' and isp == '':
|
|
|
+ elif index == 2:
|
|
|
date = ''
|
|
|
+ showtype = 'FU'
|
|
|
+ isp = ''
|
|
|
self.headers['Content-Length'] = '132'
|
|
|
else:
|
|
|
date = 'all'
|
|
|
+ showtype = 'FU'
|
|
|
+ isp = 'P'
|
|
|
self.headers['Content-Length'] = '136'
|
|
|
+ # showtype = response.meta['showtype']
|
|
|
+ # isp = response.meta['isp']
|
|
|
+ # if showtype == 'FT' and isp == '':
|
|
|
+ # date = ''
|
|
|
+ # self.headers['Content-Length'] = '132'
|
|
|
+ # elif showtype == 'FU' and isp == 'P':
|
|
|
+ # date = 'all'
|
|
|
+ # self.headers['Content-Length'] = '136'
|
|
|
+ # elif showtype == 'FU' and isp == '':
|
|
|
+ # date = ''
|
|
|
+ # self.headers['Content-Length'] = '132'
|
|
|
+ # else:
|
|
|
+ # date = 'all'
|
|
|
+ # self.headers['Content-Length'] = '136'
|
|
|
gids = response.xpath('//serverresponse/game/gid/text()').extract()
|
|
|
if gids:
|
|
|
for gid in gids:
|
|
|
from_data = {
|
|
|
- 'uid': '013dc3a00cbd488238236010f78ab4a41af7e6ff05ceb96bc0854b60807a42eb',
|
|
|
+ 'uid': 'a76428ffc4d1ca306ea354d3ff5013bb8095c8d4101e7ce76db97f63ff061729',
|
|
|
'langx': 'zh-cn',
|
|
|
'ltype': '3',
|
|
|
'gtype': 'FT',
|
|
|
@@ -128,8 +148,6 @@ class ZuqiuSpider(scrapy.Spider):
|
|
|
meta={'showtype': showtype, 'isp': isp}, dont_filter=True)
|
|
|
|
|
|
def parse_odds(self, response):
|
|
|
- # print(response.text)
|
|
|
- # game_lists = []
|
|
|
if response.status == 400:
|
|
|
print(response.status)
|
|
|
print('parse_odds', response.url)
|
|
|
@@ -146,7 +164,8 @@ class ZuqiuSpider(scrapy.Spider):
|
|
|
else:
|
|
|
game_odds[i.tag] = i.text
|
|
|
else:
|
|
|
- logger.info('gopen == "N", 详细赔率盘口未开启')
|
|
|
+ pass
|
|
|
+ # logger.info('gopen == "N", 详细赔率盘口未开启')
|
|
|
item = ZuqiuItem()
|
|
|
item['all'] = game_odds
|
|
|
yield item
|