繁体   English   中英

如何在Python中从网址中提取一些文本

[英]How to extract some text from a url in Python

我试图让python从URL字符串中提取一些文本。

这是URL示例https://somewebsite/images/products/SkuName/genricFileName.jpg

SkuName总是在第5个“ /”之后,并在第6个“ /”之后结束

我想提取“ SkuName”

import urllib.request

images = input('please enter url list separated by ","')
names = input('please enter images names separated by ","')

images = images.split(',')
names =  names.split(',')

for index, image in enumerate(images):
    urllib.request.urlretrieve(image, "images/{}.jpg".format(names[index])) 
print('images downloaded successfully')   

如您所见,用户必须手动输入SKU名称(位于变量“名称”下)

我希望用户仅输入一个输入(URL),python会自动从URL字符串中提取SKUName

谢谢!

如果您确定URL中名称的(绝对)位置不会改变,那么url.split('/')[5]应该可以解决您的问题。

如果该格式是固定的,则可以拆分URL并从结果列表中访问倒数第二个元素:

url = "https://somewebsite/images/products/SkuName/genricFileName.jpg"
skuName = url.split("/")[-2]

您似乎已经意识到split函数。 您可以将其与切片结合使用,以获取所需的内容。

skuName = input('url').split('/')[:-2]

这将产生列表中倒数第二个元素。 您也可以使用搜索第6个元素。

skuName = input('url').split('/')[5]

您可以使用python regex做到这一点。 注意:根据您的网址更改模式

import re
url = 'https://somewebsite/images/products/SkuName/genricFileName.jpg'
pattern = re.compile(r'(?<=(https://somewebsite/images/products/)).*(?=/genricFileName.jpg)', re.I)
sku_name = pattern.search(url).group()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM