去掉部分URL并保存Fi

2024-04-19 08:05:05 发布

您现在位置:Python中文网/ 问答频道 /正文

http://amz.com/New-Balance-WT910-Trail-Running/dp/B0098FOFCW/ref=zg_bsms_shoes_2

我不需要最后的/ref=zg_bsms_shoes_2

我有urls=[]中的值

for productlink in products:
    self.urls.append(productlink)

def save(self):
    self.br.quit()
    f=open(self.product_file,"w")
    for url in self.urls:
        f.write(url+"\n")
        f.flush()

怎么脱光它?如果我没有/ref=,也有失败证明?你知道吗


Tags: inselfcomrefhttpurlnewfor
3条回答

我强烈建议您从urlparse开始:

在Python3中:

>>> import os
>>> from urllib.parse import urlparse
>>> os.path.split(urlparse(url).path)[0]
'/New-Balance-WT910-Trail-Running/dp/B0098FOFCW'

urlparse将把URL转换成它的所有组成部分,然后您可以用多种方式处理路径,简单的字符串拆分,os.path.split,regex,任何您喜欢的方式。你知道吗

在Python2中只需使用from urlparse import urlparse

if 'ref' in url.split('/')[-1]: #Failsafe
    url = '/'.join(url.split('/')[:-1]
>>> x = 'http://amz.com/New-Balance-WT910-Trail-Running/dp/B0098FOFCW/ref=zg_bsms_shoes_2'
>>> '/'.join(x.split('/')[:6])
'http://amz.com/New-Balance-WT910-Trail-Running/dp/B0098FOFCW'
>>> y = 'http://amz.com/New-Balance-WT910-Trail-Running/dp/B0098FOFCW'
>>> '/'.join(y.split('/')[:6])
'http://amz.com/New-Balance-WT910-Trail-Running/dp/B0098FOFCW'

相关问题 更多 >