很多老彩民都会有自成一套的分析方法,如欧赔分析、盘口分析,球员首发分析,大小球分析等等。本期要介绍的是:足彩大数据的欧赔采集问题,采集欧赔前,先要了解网页结构分析。可能涉及到的参数有:
1、联赛 or 杯赛 (leagueid or cupid,leaguename);其赔率结构是相同的,但是底层链接可能不同;
2、球队信息 (teamid,teamname),主队和客队名称及ID;
3、比赛信息(gameid,所属leagueid或cupid)
4、采集赔率时需要哪些公司数据;
5、存储方式,可以存在SQL、Excel、CSV或其它地方;
6、采集断点保存记录,采集可能非常花费时间,人为或意外退出后,一些没有记录的赛事需要重新页面,每次都会浪费大量时间,因此非常有必要在采集过程中记录哪些是经历过的,不管是有效数据已保存的或者无效数据没有保存的。
7、页面访问过程中可能会涉及到情况包括:页面不存在(或数据没有了)、访问频率太快,页面存在但是数据没有了,或者程序本身的请求头和地址参数不符合之前的,再或者访问的服务器可能返回值出错(大面积采集时会遇到)等等,
很多作者介绍过如何爬取,但是最重要底层逻辑关系没有说,而这个是最重要的。比如说要采集一场比赛的欧赔数据,这个页面地址你已经知道了,但是要采集不同联赛几个赛季的呢,这些不同的联赛和杯赛在网页内部是不同的。有的附加赛、有的附加赛还分多轮次有的分春秋季多轮次,有的即使看起来都一样,但是底层的推送格式或格式长短也不尽相同。
实 *** 时:
1、对于页面访问过程中的设计
def get_requests(url, headers): a = 1 while a == 1: ret = requests.get(url=url, headers=headers) Soup = BeautifulSoup(ret.text, 'lxml') if ret.status_code == 404 : # 数据没有情况,gameid为全局变量 a = 0 print(gameid, '检查gameid对应的比赛是否还存在') Soup = None return Soup elif ret.status_code == 200 and *********: # 正常情况 a = 0 time.sleep(random.uniform(0.5, 0.6)) return Soup elif ret.status_code == 200 and *********: # 有页面但数据没有情况 a = 0 time.sleep(random.uniform(0.5, 0.6)) Soup = None return Soup elif ret.status_code == 200 and *********: # 访问频率过快 print('请先歇一歇') time.sleep(60 * 0.2) elif ret.status_code = 500: # 服务器返回值出错 print(gameid, 'requests参数设置错误或服务器返回值,请检查确认') get_requests(url, headers) time.sleep(5) else: print(gameid, '请检查!') time.sleep(5)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)