re 正则匹配获取指定路径
1、re正则匹配
之前我们有说过Beautiful Soup和xpath两种选择器来获取我们从前端爬下来的指定数据,但是万事都不是绝对的,万一当你发现前面两种选择器都不能匹配到的时候该怎么办呢?
这时候就要用到我们的re正则匹配了,re正则匹配是百分百可以匹配到数据的,只是前两种方便一些。
2、实例
#todo 万事第一步,导包!
import re
#todo 例如要匹配的字段如下
#small_url = '<img src="" attr="53111" data-original="http://imgsrc.baidu.com/forum/wh%3D200%2C90%3B/sign=12e1fa22e8cd7b89e93932813f146e9e/eb10f303918fa0ecce1c9ee5289759ee3f6ddb44.jpg" bpic="http://imgsrc.baidu.com/forum/w%3D580%3B/sign=ba3f42c80fe9390156028d364bd756e7/48540923dd54564e54be1ed1bdde9c82d0584f7b.jpg" class="threadlist_pic j_m_pic " />'
#todo 那么我们就可以按如下来匹配,()中的数据是等下你匹配出来后返回出来的数据,比如我们这边要http的内容,那就(http://)就可以了:
ret = '<img src="" attr="\d+?" data-original="http://imgsrc.baidu.com/forum/wh%3D200%2C90%3B/sign=.*?.jpg" bpic="(http://imgsrc.baidu.com/forum/w%3D580%3B/sign=.*?.jpg)" class="threadlist_pic j_m_pic " />'
#todo 其中pattern是你的正则表达式,用来写入你的规则,string是你要匹配的字符串
ret_2 = re.findall(pattern=ret,string=small_url)
print(ret_2)
正则匹配是最保险的,就是对于你的技术要求有点,建议用之前可以百度多了解一些正则的相关规则