Python 3.x 在美丽的汤里找到一条线

Python 3.x 在美丽的汤里找到一条线,python-3.x,beautifulsoup,Python 3.x,Beautifulsoup,我想用数据correct=“1”找到答案。以下是我的原文: <ul class="list-group"> <li class="list-group-item list-ques"><b>1.</b> What the capital of Bangladesh? </li> <li

我想用数据correct=“1”找到答案。以下是我的原文:

<ul class="list-group">
                    <li class="list-group-item list-ques"><b>1.</b> What the capital of Bangladesh?
 </li>
                                <li class="answer" data-qid="1" data-ans="a" data-correct="0" name="ans_4665" class="rd_ques_ans">
                                a. Chittagong                       
                        </li>
                                <li class="answer" data-qid="1" data-ans="b" data-correct="0" name="ans_4665" class="rd_ques_ans">
                                b.Khulna                            
                        </li>
                                <li class="answer" data-qid="1" data-ans="c" data-correct="0" name="ans_4665" class="rd_ques_ans">
                                c.Satkhira                      
                        </li>
                                <li class="answer" data-qid="1" data-correct="1" # name="ans_4665" class="rd_ques_ans">
                                d.Dhaka
                        </li>                                   
                </ul>

其结果是返回None而不是d.Dhaka

您的答复将不胜感激


快乐编码:)

不需要正则表达式。使用css class
answer
data correct
属性值
'1'
搜索所有
li
标记更方便:

my_answer=q.find('li',attrs={'class':'answer','data correct':'1'}).text.strip()

我将您的数据作为html,您可以找到
li
标记,并在
find
中提供额外的
attrs
方法来获取文本

html="""<ul class="list-group">
                        <li class="list-group-item list-ques"><b>1.</b> What the capital of Bangladesh?
     </li>
                                    <li class="answer" data-qid="1" data-ans="a" data-correct="0" name="ans_4665" class="rd_ques_ans">
                                    a. Chittagong                       
                            </li>
                                    <li class="answer" data-qid="1" data-ans="b" data-correct="0" name="ans_4665" class="rd_ques_ans">
                                    b.Khulna                            
                            </li>
                                    <li class="answer" data-qid="1" data-ans="c" data-correct="0" name="ans_4665" class="rd_ques_ans">
                                    c.Satkhira                      
                            </li>
                                    <li class="answer" data-qid="1" data-correct="1" # name="ans_4665" class="rd_ques_ans">
                                    d.Dhaka
                            </li>                                   
                    </ul>"""


soup= BeautifulSoup(html, 'html.parser')
main=soup.find("ul",class_="list-group")
main.find("li",attrs={"class":"rd_ques_ans","data-correct":"1"}).get_text(strip=True)

非常感谢您的回复。我试图运行您的代码,但出现以下错误:AttributeError:“NoneType”对象没有属性“get_text”。你能告诉我怎么解决这个问题吗?再次提前感谢。哦,li标签中有两个类,它包含
“class”
“rd\u ques\u ans”
,因此您可以更改这些内容
html="""<ul class="list-group">
                        <li class="list-group-item list-ques"><b>1.</b> What the capital of Bangladesh?
     </li>
                                    <li class="answer" data-qid="1" data-ans="a" data-correct="0" name="ans_4665" class="rd_ques_ans">
                                    a. Chittagong                       
                            </li>
                                    <li class="answer" data-qid="1" data-ans="b" data-correct="0" name="ans_4665" class="rd_ques_ans">
                                    b.Khulna                            
                            </li>
                                    <li class="answer" data-qid="1" data-ans="c" data-correct="0" name="ans_4665" class="rd_ques_ans">
                                    c.Satkhira                      
                            </li>
                                    <li class="answer" data-qid="1" data-correct="1" # name="ans_4665" class="rd_ques_ans">
                                    d.Dhaka
                            </li>                                   
                    </ul>"""


soup= BeautifulSoup(html, 'html.parser')
main=soup.find("ul",class_="list-group")
main.find("li",attrs={"class":"rd_ques_ans","data-correct":"1"}).get_text(strip=True)
'd.Dhaka'