我从API中得到的响应如下-
def update_csv(products):
print type(products)
print products
[{u'image_url': u'https://external.xx.fbcdn.net/safe_image.php?d=AQBHdbRqB7F6aMKM&url=http%3A%2F%2Fgigya.jp%2Fdpa%2F1.png&cfs=1&_nc_hash=AQDx7P52g0NYBB-3', u'id': u'1411912028843607', u'retailer_id': u'product-1'}, {u'image_url': u'https://external.xx.fbcdn.net/safe_image.php?d=AQDyc-Yyic5QLOqH&url=http%3A%2F%2Fgigya.jp%2Fdpa%2F0.png&cfs=1&_nc_hash=AQDhmhPJxFZEpMFX', u'id': u'993388404100117', u'retailer_id': u'product-0'}, {u'image_url': u'https://external.xx.fbcdn.net/safe_image.php?d=AQB69V2cgASUIci1&url=http%3A%2F%2Fgigya.jp%2Fdpa%2F100.png&cfs=1&_nc_hash=AQAk3eZ4vqWYbOW4', u'id': u'1347112758661660', u'retailer_id': u'product-100'}, {u'image_url': u'https://external.xx.fbcdn.net/safe_image.php?d=AQBM75VZTNuxqaoq&url=http%3A%2F%2Fgigya.jp%2Fdpa%2F10.png&cfs=1&_nc_hash=AQAUdkc6II5eu47D', u'id': u'1358784964179738', u'retailer_id': u'product-10'}]我想从这个包含.png的url中提取出所有的url,并解码该url。
正如您可以在上面的url中看到的那样,它包含http%3A%2F%2Fgigya.jp%2Fdpa%2F1.png,我希望提取所有这些url并解码并保存为一个列表。
我试过什么
image_urls = ""
for product in products:
image_urls += urllib.unquote(product['image_url'].split("=")[2])+"\n"问题是它没有从url中删除"&cfs“
http://gigya.jp/dpa/1.png&cfs
http://gigya.jp/dpa/0.png&cfs
http://gigya.jp/dpa/100.png&cfs
http://gigya.jp/dpa/10.png&cfs对不起,我刚认识蟒蛇。有什么有效的方法吗?请帮帮忙。
发布于 2017-01-17 04:47:39
使用urlparse,这使它变得简单得多:
>>> import urlparse
>>> for i in products:
... print(urlparse.parse_qs(urlparse.urlparse(i['image_url']).query)['url'][0])
...
http://gigya.jp/dpa/1.png
http://gigya.jp/dpa/0.png
http://gigya.jp/dpa/100.png
http://gigya.jp/dpa/10.png对于Python3,使用urllib.parse
>>> from urllib.parse import urlparse, parse_qs
>>> for i in products:
... print(parse_qs(urlparse(i['image_url']).query)['url'][0])
...
http://gigya.jp/dpa/1.png
http://gigya.jp/dpa/0.png
http://gigya.jp/dpa/100.png
http://gigya.jp/dpa/10.pnghttps://stackoverflow.com/questions/41689118
复制相似问题