用beautifulsoup读取万年历适宜结婚的大日子
需求来源:
事情的经过是这样的,我长租了酒店的停车位,每当农历结婚的日子来临之际,酒店的车辆就爆增,我的车被连续堵在里面三次,堵车的后果是什么,打电话给车主没人接,他可能在酒店里吃好喝好呢,我只能等他吃好喝好之后再回家吃冷饭,我想不能再这样下去了。经过长时间的反思我觉得我需要提前给自己做一个提醒。
提醒自己在以后周五的日子里看看万年历里面是不是这一天适合结婚,如果是那要提前把车挪到安全的地方,避免自己吃冷饭。
尝试方法:
周日的下午开始着手尝试解决这个问题
尝试了selenium,结果卡在chromedriver都打不开网页的阶段,abandon;
继续尝试用request加正则表达式,用.*?, (.*?)确实抓取出来数据了,但是是一大坨没有顺序,就是一整个月的混在一起,分不清东南西北,abandon;
再尝试用beautifulsoup,刚看开看的云里雾里,感觉不行,又重复了上面的办法循环两次,还是失败
晚上开完Python学习小会,继续尝试用beautifulsoup,去看了文档内容,https://beautiful-soup-4.readthedocs.io/en/latest/,耐心的过了一下下,还真的尝试出来了方法
代码如下:
import requests
from bs4 import BeautifulSoup
url = 'https://wannianrili.bmcx.com/2023-03-17__wannianrili/' #这是2023年3月的链接
response = requests.get(url)
soup=BeautifulSoup(response.content,'html.parser')
for i in range(30):
a = soup.find_all(id="wnrl_k_you_id_"+str(i))
b = str(a) #这一步挺关键的
bb = BeautifulSoup(b) #这一步延续上一步的关键,这里转换成“汤”后才能进行下面的操作
c = bb.get_text() #这里如果单独数据结果,会看到很清爽的数据
i +=1
if "嫁娶"and "星期五" in c:
print(True)
print(c[18:20])
我把上面的代码命名为big_day.py,“大日子”值得重视,是有道理的...
