Python添加到url

时间:2016-07-19 15:28:41

标签: python url urlparse

我的网址如下:

http://www.example.com/boards/results/current:entry1,current:entry2/modular/table/alltables/alltables/alltables/2011-01-01

我需要插入一个节点' us'在这种情况下,如下:

http://www.example.com/boards/results/us/current:entry1,current:entry2/modular/table/alltables/alltables/alltables/2011-01-01

使用Python的urlparse库,我可以按如下方式进入路径:

path = urlparse(url).path

...然后使用一个复杂而丑陋的例程,包括基于斜杠拆分路径并插入新节点然后重构URL

>>> path = urlparse(url).path
>>> path.split('/')
['', 'boards', 'results', 'current:entry1,current:entry2', 'modular', 'table', 'alltables', 'alltables', 'alltables', '2011-01-01']
>>> ps = path.split('/')
>>> ps.insert(4, 'us')
>>> '/'.join(ps)
'/boards/results/current:entry1,current:entry2/us/modular/table/alltables/alltables/alltables/2011-01-01'
>>> 

使用默认库是否有更优雅/ pythonic的方法来实现这一目标?

编辑: 结果'在网址中没有修复 - 它可以是'结果'或者'产品'或者'价格'等等。但是,它总是在' board'。

之后

1 个答案:

答案 0 :(得分:0)

path = "http://www.example.com/boards/results/current:entry1,current:entry2/modular/table/alltables/alltables/alltables/2011-01-01"
replace_start_word = 'results'
replace_word_length = len(replace_start_word)
replace_index = path.find(replace_start_word)
new_url = '%s/us%s' % (path[:replace_index + replace_word_length], path[replace_index + replace_word_length:])