我正在使用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),但没有任何效果。
有人能告诉我什么是抓取这些信息的正确方法吗?
答案 0 :(得分:0)
如果要在src
属性中找到png的名称,可以使用此正则表达式:
src=\s*(\"|\')[^"']+?([^/]+?)\.png\1
在这种情况下,你必须在Python中捕获第二组。
点击pythex link进行试用。
以下是解释:
src=\s*
字面上找到所有“src =”文字,后跟任意数量的可选空格
(\"|\')
组。
[^"']+?
任何不是双引号或单引号的内容(非贪婪)。
([^/]+?)
任何不是正斜线(非贪婪)的东西。
\.png
字面意思“.png”
\1
对第一组(\"|\')