2015-11-08 79 views
0

我成功地使用我的技術獲取了網址,但要指出的是,我需要稍微更改網址:「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代碼:

<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

如果您打算只刪除產品關鍵字,那麼您可以簡單地使用.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

+0

你的解決方案是正確的,但我如何把它放在我的新的格式裏,請看到新的Python代碼。 – Jok3r

+0

我沒有完整的腳本,所以我很難幫助你。您可以嘗試通過移除image.append API和嵌套方括號[]來查看它爲您提供的內容,從而將該內容分解爲兩部分。就像是。 對於productList中的imagesList('// * [@ class =「swiper-wrapper」]/img') –

+0

如果它給你你發佈的字符串,那麼注入我的代碼來處理字符串,然後將處理後的url附加到imageList中。 –

0

如果所有的圖像都有「產品」這個詞,你可以做一個簡單的字符串替換並刪除那個單詞嗎?無論你想要做什麼(包括重命名文件),我都將其視爲最簡單的解決方案。