我已成功使用我的技术获取网址,但重点是我需要稍微更改网址:“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”,我不知道为什么这个网址在两个方括号内。
答案 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