从网址中排除某些关键字

时间:2015-11-08 10:28:57

标签: python html regex

我已成功使用我的技术获取网址,但重点是我需要稍微更改网址:“http://www.example.com/static/p/no-name-0330-227404-1.jpg”。我在img标签中获得此链接:“http://www.example.com/static/p/no-name-0330-227404-1-product.jpg

HTML CODE:

<div class="swiper-wrapper"><img data-error-placeholder="PlaceholderPDP.jpg" class="swiper-lazy swiper-lazy-loaded" src="http://www.example.com/static/p/no-name-0330-227404-1-product.jpg"></div>

Python代码:

imagesList = []
imagesList.append([re.findall(re.compile(u'http.*?\.jpg'), etree.tostring(imagesList).decode("utf-8")) for imagesList in productTree.xpath('//*[@class="swiper-wrapper"]/img')])

print (imagesList)

输出:

[['http://www.example.com/static/p/no-name-8143-225244-1-product.jpg']]

注意:我需要从网址中删除“-product”,我不知道为什么这个网址在两个方括号内。

2 个答案:

答案 0 :(得分:0)

如果所有图片都有单词“product”,你可以只做一个简单的字符串替换并删除那个单词吗?无论你想做什么(包括重命名文件),我都认为这是最简单的解决方案。

答案 1 :(得分:0)

如果您打算只删除product关键字,那么您只需使用.replace()API即可。否则,您可以构造正则表达式来操纵字符串。下面是替换API的示例代码。

myURL = "http://www.example.com/static/p/no-name-0330-227404-1-product.jpg"
myURL = myURL.replace("-product", "") # gives u "http://www.example.com/static/p/no-name-0330-227404-1.jpg"
print(myURL)

正则表达式版本 :(可能不是一个干净的解决方案,因为它很难理解)。然而,它比第一种方法更好,因为它动态地丢弃最后一组词(例如-product)

我所做的是捕获URL的3个部分,但省略中间部分,因为这是-product位,并将第1部分和第3部分组合在一起形成您的URL。

import re
myURL = "http://www.example.com/static/p/no-name-0330-227404-1-product.jpg"

myPattern = "(.*)(-.*)(\.jpg)$"
pattern = re.compile(myPattern)
match = re.search(pattern, myURL)
print (match.group(1) + match.group(3))

与上面相同的输出: http://www.example.com/static/p/no-name-0330-227404-1.jpg