正则表达式在html图像src中查找子字符串

时间:2017-10-07 20:38:28

标签: python beautifulsoup

我正在使用beautifulsoup来抓取网站中的不同数据。 我试图抓取源,但不是所有的源,只是对我来说很重要的子串。

例如,在这个项目中,我想只选择/和.png之间的字符串(在本例中为“nyt”)并将其保存在列表中。

<image width="185" height="26" 
xmlns:xlink="http://www.w3.org/1999/xlink" 
xlink:href="https://a1.nyt.com/assets/shell/20160613-034030/images/foundation/logos/nyt-logo-185x26.svg" src="https://a1.nyt.com/assets/shell/20160613-034030/images/foundation/logos/nyt.png" border="0"></image>

我一直在尝试使用几个正则表达式,例如re.search('[a-z] *。png',src).group(0),但没有任何效果。

有人能告诉我什么是抓取这些信息的正确方法吗?

1 个答案:

答案 0 :(得分:0)

如果要在src属性中找到png的名称,可以使用此正则表达式:

src=\s*(\"|\')[^"']+?([^/]+?)\.png\1

在这种情况下,你必须在Python中捕获第二组。

点击pythex link进行试用。

以下是解释:

src=\s*字面上找到所有“src =”文字,后跟任意数量的可选空格

带有双引号或单引号的

(\"|\')组。

[^"']+?任何不是双引号或单引号的内容(非贪婪)。

([^/]+?)任何不是正斜线(非贪婪)的东西。

\.png字面意思“.png”

\1对第一组(\"|\')

的反向引用