python足球类爬虫——足彩大数据之欧赔采集

python足球类爬虫——足彩大数据之欧赔采集,第1张

python足球类爬虫——足彩大数据之欧赔采集

很多老彩民都会有自成一套的分析方法,如欧赔分析、盘口分析,球员首发分析,大小球分析等等。本期要介绍的是:足彩大数据的欧赔采集问题,采集欧赔前,先要了解网页结构分析。可能涉及到的参数有:

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)

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5652354.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存