不能爬小程序,叫什么会爬虫( 二 )


实现了节假日判断后,在主预约程序里加一个判断,如果要预约的日子是工作日,再后延一日,继续判断,直到遇到一个非工作日
这里展示一下判断日期类型的代码:
import requestsfrom lxml import etreeimport datetimeimport osdef getDaysInfo(ym):    cacheName = ym + ".html"    if os.path.exists(cacheName):        content = open(cacheName).read()    else:        content = requestsDayInfo(ym)        saveFile(cacheName, content)        return contentdef requestsDayInfo(ym=None):    headers = {        'sec-ch-ua': '"google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"',        'Referer': 'https://wannianrili.bmcx.com/',        'sec-ch-ua-mobile': '?0',        'User-Agent': 'Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36',    }    params = (        ('q', ym),        ('v', '20031912'),    )    response = requests.get('https://wannianrili.bmcx.com/ajax/', headers=headers, params=params)    return response.textdef saveFile(name, content):    print(name)    f = open(name,'w')    f.write(content)    f.close()def parse(content, d):    html = etree.HTML(content)    dayclass = html.xpath('//*[@id="wnrl_riqi_id_'+str(int(d)-1)+'"]')[0].attrib.get('class')    if dayclass is None or dayclass == 'wnrl_riqi_ban':        return 1    elif dayclass == 'wnrl_riqi_mo':        return 2    elif dayclass == 'wnrl_riqi_xiu':        return 3    else:        return 0def getDayType(date):    str_date = date.strftime('%Y-%m-%d')    ymd = str_date.split("-")    ym = ymd[0] + '-' + ymd[1]    d = ymd[2]    return parse(getDaysInfo(ym), d)if __name__ == "__main__":    delta = 1  # 探索步长为一日    date = datetime.date.today()    while(getDayType(date)<2):        delta += 1        date = datetime.date.today() + datetime.timedelta(days=delta)总结好了,现在又可以做优雅的老爸了哈哈,对孩子最好的教育就是陪孩子一起成长,无论是什么方面,如果你恰巧喜欢编程,会编程的话,可以尝试和孩子一起做些有意思的东西,比如 做个掷骰子游戏[7]




推荐阅读