爬虫问题记录——正则图片爬取

背景:提取百度贴吧的某张网页的图片链接

    ex='<div id="post_content_146765581359" class="d_post_content j_d_post_content' \
       ' " style="display:;">.*?(<img class="BDE_Image" src=".*?" ' \
       'size=.*?" height=.*?>)</div>'

在(<img class=“BDE_Image” src=“.?" size=.?” height=.*?>)两端加括号,爬取出来的结果就是这样,后面的图片连接要自己再提取一下。包含了很多无关的内容 我只要src后面的链接

    ex='<div id="post_content_146765581359" class="d_post_content j_d_post_content' \
       ' " style="display:;">.*?<img class="BDE_Image" src="(.*?)" ' \
       'size=.*?</div>'

只在src="(.*?)"这里加括号,很好,你只能提取一条图片链接

    # ex='<div id="post_content_146765581359" class="d_post_content j_d_post_content' \
    #    ' " style="display:;">.*?<img class="BDE_Image" src="(.*?)" ' \
    #    'size=.*?" height=.*?><img class="BDE_Image" src="(.*?)" ' \
    #    'size=.*?" height=.*?><img class="BDE_Image" src="(.*?)" ' \
    #    'size=.*?" height=.*?><img class="BDE_Image" src="(.*?)" ' \
    #    'size=.*?" height=.*?></div>'

这种多复制几个<img class=“BDE_Image” src=“(.?)" size=.?” height=.*?>,除非我有未卜先知的能力,知道有几个图片链接,无语

所以这个正则表达式应该怎么写,能简洁的一次性把该页面的图片链接都搞出来。。。

嘿嘿,解决了,先findall找出div里面的代码,然后再findall找img相同格式的,这样就一句img正则就可以了

    ex1='<div id="post_content_146765581359" class="d_post_content j_d_post_content' \
       ' " style="display:;">.*?(<img class="BDE_Image" src=".*?" size=.*?" height=.*?></div>)'
    img_src_list1 = re.findall(ex1, page_data, re.S).__str__()

    ex2='<img class="BDE_Image" src="(.*?)" size=.*?" height=.*?>'
    img_src_list2 = re.findall(ex2, img_src_list1, re.S)
    print(img_src_list2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值