问题:在python中用beautifulsoup获取<li>标签的内容

我想在<section>标签之后获取前3个<li>标签的内容,我不知道如何在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")

我感谢你给我的每一个帮助或评论:)

解答

您可以使用函数.find_all()查找section中的所有li组件,然后使用.text属性或方法 -.get_text()获取其文本。例子 -

>>> for lis in address.find_all('li'):
...     print(lis.get_text())
...
<first li text>
22855157 22852085
<third li text>
Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐