1 Python爬取直播吧首页重要赛事赛程信息
最近想做一个每日邮件提醒功能,包括提醒自己每天的天气以及每天的体育赛事,防止因为自己事情多忘记了一些重要的赛事,直播吧每天都更新了重要的赛程信息,如下
我希望爬取直播吧首页重要的赛事信息,使用最简单的requests
+BeautifulSoup
的方案,做了简单的随机User-Agent混淆,爬取的代码如下
<code class="language-python line-numbers">import requests from random import choice from bs4 import BeautifulSoup UserAgents = [ "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36 *OPR*/44.0.2510.1218", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.108 Safari/537.36 *2345Explorer*/8.4.1.14855", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36 *JuziBrowser*", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 *LBBROWSER*", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.2441.400 *QQBrowser*/9.5.10632.400", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X *MetaSr* 1.0", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) *Maxthon*/5.0.2.2000 Chrome/47.0.2526.73 Safari/537.36", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 *UBrowser*/6.1.2107.204 Safari/537.36", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 *BIDUBrowser*/8.4 Safari/537.36", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36 *TheWorld* 7", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 *YaBrowser*/17.3.1.840 *Yowser*/2.5 Safari/537.36", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36 *Qiyu*/2.1.0.0", "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5", 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36 Edg/98.0.1108.42' ] class ZBB: def __init__(self): self.url = "https://www.zhibo8.cc/" def get_zbb_sports_schedule(self): request_headers = { 'User-Agent': choice(UserAgents) } res = requests.get(url=self.url, headers=request_headers) res.encoding = 'utf-8' soup = BeautifulSoup(res.text, 'html.parser') schedule_container = soup.find("div", class_="schedule_container left") boxs = schedule_container.find_all("div", class_="box") for box in boxs: data_str = box.find("div", class_="titlebar").text.replace("\n", "") print(data_str) ul = box.find("div", "content").find_all("li") for li in ul: data_time_str = li.find(text=True, recursive=False) sports_schedule_str = li.find("b").text.replace(" ","") print('{0} {1}'.format(data_time_str,sports_schedule_str)) if __name__ == '__main__': zbb = ZBB() zbb.get_zbb_sports_schedule() </code>
部分结果
<code class="language-python line-numbers">11月23日 星期三 15:00 王者荣耀世冠杯外卡赛 TFB-BAC 15:45 王者荣耀世冠杯外卡赛 SZ-BOX 16:30 王者荣耀世冠杯外卡赛 TRB-TFB 17:15 王者荣耀世冠杯外卡赛 GEN-BOX 18:00 世界杯小组赛F组第1轮 摩洛哥-克罗地亚 18:00 王者荣耀世冠杯外卡赛 SZ-BAC 18:00 斯诺克德国大师赛资格赛Day3 18:45 王者荣耀世冠杯外卡赛 TQ-TRB 19:30 王者荣耀世冠杯外卡赛 GEN-TFB 20:15 王者荣耀世冠杯外卡赛 IMP-BAC 21:00 世界杯小组赛E组第1轮 德国-日本 21:00 王者荣耀世冠杯外卡赛 GEN-TQ 21:45 王者荣耀世冠杯外卡赛 IMP-TRB 22:30 斯诺克德国大师赛资格赛 格雷斯-颜丙涛 11月24日 星期四 00:00 世界杯小组赛E组第1轮 西班牙-哥斯达黎加 03:00 世界杯小组赛F组第1轮 比利时-加拿大 08:00 NBA常规赛 76人-黄蜂 08:00 NBA常规赛 开拓者-骑士 08:00 NBA常规赛 森林狼-步行者 08:30 NBA常规赛 国王-老鹰 08:30 NBA常规赛 独行侠-凯尔特人 08:30 NBA常规赛 奇才-热火 08:30 NBA常规赛 篮网-猛龙 09:00 NBA常规赛 公牛-雄鹿 09:00 NBA常规赛 掘金-雷霆 09:00 NBA常规赛 鹈鹕-马刺 10:00 NBA常规赛 活塞-爵士 11:00 NBA常规赛 快船-勇士 12:00 鏖战世界波第5期 鏖战世界波-第5期 15:00 王者荣耀世冠杯外卡赛 BAC-BOX 15:45 王者荣耀世冠杯外卡赛 SZ-TFB 16:30 王者荣耀世冠杯外卡赛 TQ-BOX 17:15 王者荣耀世冠杯外卡赛 GEN-BAC 18:00 世界杯小组赛G组第1轮 瑞士-喀麦隆 18:00 王者荣耀世冠杯外卡赛 TQ-TFB 18:00 斯诺克德国大师赛资格赛Day4 18:00 斯诺克德国大师赛资格赛 乔丹-布朗-丁俊晖 18:30 NBL(A)常规赛 珀斯野猫-阿德莱德36人 18:45 王者荣耀世冠杯外卡赛 IMP-SZ 19:30 王者荣耀世冠杯外卡赛 TRB-BOX 20:15 王者荣耀世冠杯外卡赛 IMP-GEN 20:30 足球友谊赛 狮城水手-多特蒙德 21:00 世界杯小组赛H组第1轮 乌拉圭-韩国 21:00 王者荣耀世冠杯外卡赛 SZ-TRB 11月25日 星期五 00:00 世界杯小组赛H组第1轮 葡萄牙-加纳 03:00 世界杯小组赛G组第1轮 巴西-塞尔维亚 09:20 NFL常规赛 爱国者-维京人 ...... </code>
然后将这个模块加入到我的每日清晨的定时邮件发送中去,那么起床的第一时间以及在通行时就可以通过阅读邮件来看今天有什么比较重要的体育赛事了,完结撒花!
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:Python – 爬取直播吧首页重要赛事赛程信息
原文链接:https://www.stubbornhuang.com/2418/
发布于:2022年11月23日 15:32:59
修改于:2023年06月21日 17:50:14
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
49