我希望获得<li>
标记后的前3个<section>
标记的内容,我不知道如何操作BeautifulSoap中的子标记,我试图将此文本和然后通过拆分获得我想要的东西但是我没有成功。
这是HTML代码:
<section class="l-map">
<ul>
<li>خیابان شریعتی، روبروی پارک کوروش، کوچه پیروز، پلاک 48 </li>
<li>22855157 22852085</li>
<li>شریعتی:قلهک، سید خندان
</li>
</ul>
<div class="foot">
<a class="dm fancy" href="#contact" id="inline">پیام مستقیم به مدیر</a>
<a class="rm" href="#phonenumber" id="inline">دریافت پیامکی اطلاعات</a>
</div>
<input id="IsMaximumSmsReached" name="IsMaximumSmsReached" value="False" type="hidden">
<div style="display:none">
<div id="phonenumber">
<div class="contact-form number">
<h1>
دریافت پیامکی اطلاعات
<i class="icon contact"></i>
</h1>
<p>
شماره تلفن همراه خود را وارد کنید.
</p>
<form id="sendSMS">
<div class="form-input">
<input id="cellphone" name="cellphone" placeholder="برای مثال. 09121112222" type="text">
</div>
<div class="form-submit">
<button type="submit" href="#" class="submit">ارسال</button>
</div>
<p class="alert-box"></p>
</form>
</div>
</div>
</div>
<div style="display:none">
<div id="contact">
<div class="contact-form">
<h1>
ارسال پیام به مدیریت رستوران
<i class="icon message"></i>
</h1>
<p>
در این بخش شما می توانید به صورت مستقیم به مدیریت رستوران پیام ارسال نمایید.
<br>
پیام خود را در زیر بنویسید و ارسال نمایید.
</p>
<form id="managerMessage">
<div class="form-input">
<input id="MessageSenderName" name="MessageSenderName" placeholder="نام شما (اختیاری)">
<input id="MessageSenderPhone" name="MessageSenderPhone" placeholder="تلفن تماس شما (اختیاری)"><br>
<input id="MessageSenderEmail" name="MessageSenderEmail" placeholder="ایمیل شما (اختیاری)"><br>
<textarea id="MessageToManager" name="MessageToManager" placeholder="پیام"></textarea>
</div>
<div class="form-submit">
<button type="submit" href="#" class="submit">ارسال</button>
</div>
<p class="alert-box"></p>
</form>
</div>
</div>
</div>
</section>
我只需使用以下代码行访问整个<section>
代码:
address = soup.find('section', class_="l-map")
我感谢你给我的每一个帮助或评论:)
答案 0 :(得分:3)
您可以使用li
功能查找section
中的所有.text
组件,然后使用.get_text()
属性或方法获取其文本 - { {1}}。示例 -
>>> for lis in address.find_all('li'):
... print(lis.get_text())
...
<first li text>
22855157 22852085
<third li text>