鱼C论坛

 找回密码
 立即注册
查看: 728|回复: 5

[已解决]关于正则表达式的问题,请各位高手帮助

[复制链接]
发表于 2020-4-14 13:17:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
<div id="list" class="proLis">
                <ul>
                    
                            <li><a href="/UserFiles/海报202003/20014/3-08081949579.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/3-08081949579.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——3页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20014/4-08082166642.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/4-08082166642.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——4页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20014/5-08082087384.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/5-08082087384.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——5页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20014/6-08082978579.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/6-08082978579.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——6页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20014/7-08083044846.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/7-08083044846.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——7页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20014/8-08083082937.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/8-08083082937.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——8页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20014/9-08082942326.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/9-08082942326.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——9页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20013/1-17295275498.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20013/1-17295275498.jpg" width="165" height="117"><br>
                                <span>
                                    第20013期——1页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20013/2-17295416077.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20013/2-17295416077.jpg" width="165" height="117"><br>
                                <span>
                                    第20013期——2页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20013/3-17295337112.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20013/3-17295337112.jpg" width="165" height="117"><br>
                                <span>
                                    第20013期——3页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20013/4-07484960541.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20013/4-07484960541.jpg" width="165" height="117"><br>
                                <span>
                                    第20013期——4页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20013/5-17295357855.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20013/5-17295357855.jpg" width="165" height="117"><br>
                                <span>
                                    第20013期——5页</span></a></li>
                        
                </ul>
                <div class="clear">


以上我想把所有的<img src=  和 width 之间的jpg地址提取出来

我写了一个正则

响应数据就是上面这些数据
a = '<div id="list" class="proLis">.*?<img src="(.*?)" width.*?<div class="clear">'
r = re.findall(a,响应数据,re.S)
print(r)

可是我只提取了一条,返回的列表里只有一条,并没有把12个都提取出来
['/UserFiles/海报202003/20015/1-15510642492.jpg']
最佳答案
2020-4-14 15:05:21
本帖最后由 hrp 于 2020-4-14 15:06 编辑
#-*-coding:utf8-*-
import re

响应数据 = '''<div id="list" class="proLis">
                <ul>
                    
                            <li><a href="/UserFiles/海报202003/20014/3-08081949579.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/3-08081949579.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——3页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20014/4-08082166642.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/4-08082166642.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——4页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20014/5-08082087384.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/5-08082087384.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——5页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20014/6-08082978579.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/6-08082978579.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——6页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20014/7-08083044846.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/7-08083044846.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——7页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20014/8-08083082937.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/8-08083082937.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——8页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20014/9-08082942326.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/9-08082942326.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——9页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20013/1-17295275498.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20013/1-17295275498.jpg" width="165" height="117"><br>
                                <span>
                                    第20013期——1页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20013/2-17295416077.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20013/2-17295416077.jpg" width="165" height="117"><br>
                                <span>
                                    第20013期——2页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20013/3-17295337112.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20013/3-17295337112.jpg" width="165" height="117"><br>
                                <span>
                                    第20013期——3页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20013/4-07484960541.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20013/4-07484960541.jpg" width="165" height="117"><br>
                                <span>
                                    第20013期——4页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20013/5-17295357855.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20013/5-17295357855.jpg" width="165" height="117"><br>
                                <span>
                                    第20013期——5页</span></a></li>
                        
                </ul>
                <div class="clear">'''


res = re.findall(r'(?<=\<img src\=").+(?=" width)', 响应数据)

print(res)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-14 13:20:18 | 显示全部楼层
本帖最后由 qiuyouzhi 于 2020-4-14 14:04 编辑

直接用BeautifulSoup不好吗?
target = soup('img')
for each in target:
    print(each['src]')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-14 14:02:40 | 显示全部楼层
qiuyouzhi 发表于 2020-4-14 13:20
直接用BeautifulSoup不好吗?

少敲半个中括号

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
qiuyouzhi + 5 + 5 + 3 呃呃呃

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-14 14:19:34 | 显示全部楼层
本帖最后由 悠悠2264 于 2020-4-14 14:22 编辑

因为正则表达式不会去重复匹配(<div id="list" class="proLis">只会匹配一次),所以应该写成:
import re

p = re.compile('(?<=<img src=").*?(?=" width="165" height="117">)')
find = p.findall(响应数据)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-14 15:05:21 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
本帖最后由 hrp 于 2020-4-14 15:06 编辑
#-*-coding:utf8-*-
import re

响应数据 = '''<div id="list" class="proLis">
                <ul>
                    
                            <li><a href="/UserFiles/海报202003/20014/3-08081949579.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/3-08081949579.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——3页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20014/4-08082166642.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/4-08082166642.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——4页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20014/5-08082087384.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/5-08082087384.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——5页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20014/6-08082978579.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/6-08082978579.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——6页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20014/7-08083044846.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/7-08083044846.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——7页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20014/8-08083082937.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/8-08083082937.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——8页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20014/9-08082942326.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20014/9-08082942326.jpg" width="165" height="117"><br>
                                <span>
                                    第20014期——9页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20013/1-17295275498.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20013/1-17295275498.jpg" width="165" height="117"><br>
                                <span>
                                    第20013期——1页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20013/2-17295416077.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20013/2-17295416077.jpg" width="165" height="117"><br>
                                <span>
                                    第20013期——2页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20013/3-17295337112.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20013/3-17295337112.jpg" width="165" height="117"><br>
                                <span>
                                    第20013期——3页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20013/4-07484960541.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20013/4-07484960541.jpg" width="165" height="117"><br>
                                <span>
                                    第20013期——4页</span></a></li>
                        
                            <li><a href="/UserFiles/海报202003/20013/5-17295357855.jpg" target="_blank">
                                <img src="/UserFiles/海报202003/20013/5-17295357855.jpg" width="165" height="117"><br>
                                <span>
                                    第20013期——5页</span></a></li>
                        
                </ul>
                <div class="clear">'''


res = re.findall(r'(?<=\<img src\=").+(?=" width)', 响应数据)

print(res)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-14 15:22:17 | 显示全部楼层
我感觉特奇怪

import re
a = 'life is short,i use python life is short,i use python life is short,i use python'
r = re.findall('life(.*)python',a)
print(r)

我这样可以提取所有的 可是我现在应用到网页上就只能提取一条
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 12:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表