我正在尝试学习Python,以便使用beautifulsoup刮取网站午餐菜单。我已经提出了这个要求
r = requests.get(url)
soup = BeautifulSoup(r.text, "html.parser")
反应如下:
<div class="lunchRow">
<div class="lunchRowDay"><h3>Monday</h3></div>
<div class="lunchRowItem"><div class="lunchRowItemActual">Meatballs</div>
<div class="lunchRowItemActual">Soup</div>
</div>
</div>
<div class="lunchRow">
<div class="lunchRowDay"><h3>Tuesday</h3></div>
<div class="lunchRowItem"><div class="lunchRowItemActual">Chicken</div>
<div class="lunchRowItemActual">Pork</div>
<div class="lunchRowItemActual">Fish</div>
</div>
</div>
每天吃午餐最简单的方法是什么?我开始寻找那天,得到下一个div,但之后我迷路了,我想这不是解决问题的方法
soup = soup.find(string="Monday").find_next('div').contents[0].text
首先,您应该尝试按其类名获取所有午餐行div,并将其保存到如下所示的变量中:
然后,我们可以循环它们,得到如下所示的各个日期和项目。这里我们获取第一个/唯一的午餐日项目,然后查找当前行中的所有午餐日项目实际元素:
这项研究的结果是:
与其将它们打印出来,不如将它们放在dict中,使用午餐行日期作为键,然后将午餐行项目实际值放在列表中,但这取决于您
soup.select是一种很好的方式来做这样的事情
然后使用get_文本。。。获取文本
一些列表理解将get_文本应用于整个列表
相关问题 更多 >
编程相关推荐