关于re模块正则表达式问题

这是我写的

  news_pic = re.findall('<li class=".*?">.*?<div class="news_imgs">.*?<a .*?>.*?<img src="(.*?)" width=".*?">.*?</a>.*?</li>', html)
 

这是我需要其中的img这一块

                               <li class="news n2 clearfix">
                                       <div class="news_imgs"><a href='/2022/0504/c12513a146987/page.htm' target='_blank' title='统计与信息学院举上座谈会'><img src='/_upload/article/images/17/70/34093d0f472482d9e56f7bb4d7f7/f18cdc2b-b770-4312-8b85-cf1f7d0442b9.png' width='640' /></a></div>
                                       <div class="news_box">
                                       <div class="news_title"><a href='/2022/0504/c12513a146987/page.htm' target='_blank' title='统计与信息学院上座谈会'>统计与信息青团谈会</a></div>
                                       <div class="news_meta"><span class="date-month">05-04</span><span class="date-year">2022</span></div>
                 <div class="cols_text"><a href='/2022/0504/c12513a146987/page.htm' target='_blank' title='统计与信息学院。。。'>  。。。。。。</a></div>
                 <div class="cols_more"><a href="/2022/0504/c12513a146987/page.htm" class="more_txt">阅读更多&gt;&gt;</a></div>
                                       </div>
                                   </li>
                                        
 

不知道为何总是取不到img中src那一块。

首先,你要开启单行模式,不然回车换行匹配不了;第二,你要匹配的字符串里既有单引号又有双引号,你需要转义。
试试这个:

news_pic = re.findall('<li class=".*?">.*?<div class="news_imgs">.*?<a .*?>.*?<img src=\'(.*?)\' width=\'.*?\'>.*?</a>.*?</li>', html, re.DOTALL)

把后面的html改为re.S