Products
GG网络技术分享 2025-03-18 16:14 5
现在有一段img标签我可以获取 但是img标签里面有一个data-src和src 我用正则去匹配src 但是获取到的是data-src里面的内容 如何过滤掉获取第二次出现的src内容
<img class=\"loadingclass\" id=\"loading_jd4ln1ka\" data-src=\"https://mmbiz.qpic.cn/mmbiz_jpg/FJYxahcppx2C9jyw4hJQKH9R9Ws8LdPicmrAvfw7kS1Tau6PuLP7eOBjqybtiaT9icJo9OupL9ibMdAIFBnR2wtvSQ/640?wx_fmt=jpeg\" src=\"https://mmbiz.qpic.cn/mmbiz_jpg/FJYxahcppx2C9jyw4hJQKH9R9Ws8LdPicmrAvfw7kS1Tau6PuLP7eOBjqybtiaT9icJo9OupL9ibMdAIFBnR2wtvSQ/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1&retryload=1\" dataLabel=\"1,2,3\" title=\"正在上传...\"/>
String group = matcher.group();Pattern srcText = Pattern.compile(\"(src|SRC)=(\\\"|\\\')(.*?)(\\\"|\\\')\");//匹配图片的地址
Pattern srcText2 = Pattern.compile(\"(data-src|DATA-SRC)=(\\\"|\\\')(.*?)(\\\"|\\\')\");//匹配图片的地址
Matcher matcher2 = srcText2.matcher(group);
Matcher matcher3 = srcText.matcher(group);
简单的做法是,修改一下查找src的正则,在前面加一个\\s,因为标签的属性前面是使用客格作为分隔的,这里必然有一个\\s.
同样的,你data-src也建议加上这个\\s
记录提取网页数据(正则表达式、bs4、xpath)一些常用方法和使用样板。
python 爬虫 常见流程.jpg
就永恒君使用经验来说,bs4、xpath比较容易上手但是功能有限,正则比较晦涩难懂但是功能超级强大。
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
re 模块使 Python 语言拥有全部的正则表达式功能。
Demand feedback