鱼C论坛

 找回密码
 立即注册
查看: 975|回复: 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 编辑
  1. #-*-coding:utf8-*-
  2. import re

  3. 响应数据 = '''<div id="list" class="proLis">
  4.                 <ul>
  5.                     
  6.                             <li><a href="/UserFiles/海报202003/20014/3-08081949579.jpg" target="_blank">
  7.                                 <img src="/UserFiles/海报202003/20014/3-08081949579.jpg" width="165" height="117"><br>
  8.                                 <span>
  9.                                     第20014期——3页</span></a></li>
  10.                         
  11.                             <li><a href="/UserFiles/海报202003/20014/4-08082166642.jpg" target="_blank">
  12.                                 <img src="/UserFiles/海报202003/20014/4-08082166642.jpg" width="165" height="117"><br>
  13.                                 <span>
  14.                                     第20014期——4页</span></a></li>
  15.                         
  16.                             <li><a href="/UserFiles/海报202003/20014/5-08082087384.jpg" target="_blank">
  17.                                 <img src="/UserFiles/海报202003/20014/5-08082087384.jpg" width="165" height="117"><br>
  18.                                 <span>
  19.                                     第20014期——5页</span></a></li>
  20.                         
  21.                             <li><a href="/UserFiles/海报202003/20014/6-08082978579.jpg" target="_blank">
  22.                                 <img src="/UserFiles/海报202003/20014/6-08082978579.jpg" width="165" height="117"><br>
  23.                                 <span>
  24.                                     第20014期——6页</span></a></li>
  25.                         
  26.                             <li><a href="/UserFiles/海报202003/20014/7-08083044846.jpg" target="_blank">
  27.                                 <img src="/UserFiles/海报202003/20014/7-08083044846.jpg" width="165" height="117"><br>
  28.                                 <span>
  29.                                     第20014期——7页</span></a></li>
  30.                         
  31.                             <li><a href="/UserFiles/海报202003/20014/8-08083082937.jpg" target="_blank">
  32.                                 <img src="/UserFiles/海报202003/20014/8-08083082937.jpg" width="165" height="117"><br>
  33.                                 <span>
  34.                                     第20014期——8页</span></a></li>
  35.                         
  36.                             <li><a href="/UserFiles/海报202003/20014/9-08082942326.jpg" target="_blank">
  37.                                 <img src="/UserFiles/海报202003/20014/9-08082942326.jpg" width="165" height="117"><br>
  38.                                 <span>
  39.                                     第20014期——9页</span></a></li>
  40.                         
  41.                             <li><a href="/UserFiles/海报202003/20013/1-17295275498.jpg" target="_blank">
  42.                                 <img src="/UserFiles/海报202003/20013/1-17295275498.jpg" width="165" height="117"><br>
  43.                                 <span>
  44.                                     第20013期——1页</span></a></li>
  45.                         
  46.                             <li><a href="/UserFiles/海报202003/20013/2-17295416077.jpg" target="_blank">
  47.                                 <img src="/UserFiles/海报202003/20013/2-17295416077.jpg" width="165" height="117"><br>
  48.                                 <span>
  49.                                     第20013期——2页</span></a></li>
  50.                         
  51.                             <li><a href="/UserFiles/海报202003/20013/3-17295337112.jpg" target="_blank">
  52.                                 <img src="/UserFiles/海报202003/20013/3-17295337112.jpg" width="165" height="117"><br>
  53.                                 <span>
  54.                                     第20013期——3页</span></a></li>
  55.                         
  56.                             <li><a href="/UserFiles/海报202003/20013/4-07484960541.jpg" target="_blank">
  57.                                 <img src="/UserFiles/海报202003/20013/4-07484960541.jpg" width="165" height="117"><br>
  58.                                 <span>
  59.                                     第20013期——4页</span></a></li>
  60.                         
  61.                             <li><a href="/UserFiles/海报202003/20013/5-17295357855.jpg" target="_blank">
  62.                                 <img src="/UserFiles/海报202003/20013/5-17295357855.jpg" width="165" height="117"><br>
  63.                                 <span>
  64.                                     第20013期——5页</span></a></li>
  65.                         
  66.                 </ul>
  67.                 <div class="clear">'''


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

  69. print(res)


复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

直接用BeautifulSoup不好吗?
  1. target = soup('img')
  2. for each in target:
  3.     print(each['src]')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

少敲半个中括号

评分

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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

  2. p = re.compile('(?<=<img src=").*?(?=" width="165" height="117">)')
  3. find = p.findall(响应数据)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

  3. 响应数据 = '''<div id="list" class="proLis">
  4.                 <ul>
  5.                     
  6.                             <li><a href="/UserFiles/海报202003/20014/3-08081949579.jpg" target="_blank">
  7.                                 <img src="/UserFiles/海报202003/20014/3-08081949579.jpg" width="165" height="117"><br>
  8.                                 <span>
  9.                                     第20014期——3页</span></a></li>
  10.                         
  11.                             <li><a href="/UserFiles/海报202003/20014/4-08082166642.jpg" target="_blank">
  12.                                 <img src="/UserFiles/海报202003/20014/4-08082166642.jpg" width="165" height="117"><br>
  13.                                 <span>
  14.                                     第20014期——4页</span></a></li>
  15.                         
  16.                             <li><a href="/UserFiles/海报202003/20014/5-08082087384.jpg" target="_blank">
  17.                                 <img src="/UserFiles/海报202003/20014/5-08082087384.jpg" width="165" height="117"><br>
  18.                                 <span>
  19.                                     第20014期——5页</span></a></li>
  20.                         
  21.                             <li><a href="/UserFiles/海报202003/20014/6-08082978579.jpg" target="_blank">
  22.                                 <img src="/UserFiles/海报202003/20014/6-08082978579.jpg" width="165" height="117"><br>
  23.                                 <span>
  24.                                     第20014期——6页</span></a></li>
  25.                         
  26.                             <li><a href="/UserFiles/海报202003/20014/7-08083044846.jpg" target="_blank">
  27.                                 <img src="/UserFiles/海报202003/20014/7-08083044846.jpg" width="165" height="117"><br>
  28.                                 <span>
  29.                                     第20014期——7页</span></a></li>
  30.                         
  31.                             <li><a href="/UserFiles/海报202003/20014/8-08083082937.jpg" target="_blank">
  32.                                 <img src="/UserFiles/海报202003/20014/8-08083082937.jpg" width="165" height="117"><br>
  33.                                 <span>
  34.                                     第20014期——8页</span></a></li>
  35.                         
  36.                             <li><a href="/UserFiles/海报202003/20014/9-08082942326.jpg" target="_blank">
  37.                                 <img src="/UserFiles/海报202003/20014/9-08082942326.jpg" width="165" height="117"><br>
  38.                                 <span>
  39.                                     第20014期——9页</span></a></li>
  40.                         
  41.                             <li><a href="/UserFiles/海报202003/20013/1-17295275498.jpg" target="_blank">
  42.                                 <img src="/UserFiles/海报202003/20013/1-17295275498.jpg" width="165" height="117"><br>
  43.                                 <span>
  44.                                     第20013期——1页</span></a></li>
  45.                         
  46.                             <li><a href="/UserFiles/海报202003/20013/2-17295416077.jpg" target="_blank">
  47.                                 <img src="/UserFiles/海报202003/20013/2-17295416077.jpg" width="165" height="117"><br>
  48.                                 <span>
  49.                                     第20013期——2页</span></a></li>
  50.                         
  51.                             <li><a href="/UserFiles/海报202003/20013/3-17295337112.jpg" target="_blank">
  52.                                 <img src="/UserFiles/海报202003/20013/3-17295337112.jpg" width="165" height="117"><br>
  53.                                 <span>
  54.                                     第20013期——3页</span></a></li>
  55.                         
  56.                             <li><a href="/UserFiles/海报202003/20013/4-07484960541.jpg" target="_blank">
  57.                                 <img src="/UserFiles/海报202003/20013/4-07484960541.jpg" width="165" height="117"><br>
  58.                                 <span>
  59.                                     第20013期——4页</span></a></li>
  60.                         
  61.                             <li><a href="/UserFiles/海报202003/20013/5-17295357855.jpg" target="_blank">
  62.                                 <img src="/UserFiles/海报202003/20013/5-17295357855.jpg" width="165" height="117"><br>
  63.                                 <span>
  64.                                     第20013期——5页</span></a></li>
  65.                         
  66.                 </ul>
  67.                 <div class="clear">'''


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

  69. print(res)


复制代码

小甲鱼最新课程 -> https://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)

我这样可以提取所有的 可是我现在应用到网页上就只能提取一条
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-14 16:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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