Python 缩短的URL需要随机化

Python 缩短的URL需要随机化,python,twitter,tinyurl,Python,Twitter,Tinyurl,我有下面的代码,它几乎可以正常工作。三个URL被缩短,然后放入三条不同推文的内容中,然后提交给twitter。但是,每次缩短URL时,缩短的URL都是相同的。正因为如此,twitter垃圾邮件过滤器一直在捕获tweet 有没有一种方法可以通过使用import tinyurl或其他完全不同的方法来随机显示缩短的URL来阻止这种情况的发生 import simplejson import httplib2 import twitter import tinyurl print("Python wi

我有下面的代码,它几乎可以正常工作。三个URL被缩短,然后放入三条不同推文的内容中,然后提交给twitter。但是,每次缩短URL时,缩短的URL都是相同的。正因为如此,twitter垃圾邮件过滤器一直在捕获tweet

有没有一种方法可以通过使用import tinyurl或其他完全不同的方法来随机显示缩短的URL来阻止这种情况的发生

import simplejson
import httplib2
import twitter
import tinyurl

print("Python will now attempt to submit tweets to twitter...")

try:

    api = twitter.Api(consumer_key='',
                      consumer_secret='',
                      access_token_key='',
                      access_token_secret='')

    for u in tinyurl.create('http://audiotechracy.blogspot.co.uk/2014/03/reviewing-synapse-antidote-rack.html',
                        'http://audiotechracy.blogspot.co.uk/2014/03/free-guitar-patches-for-propellerhead.html',
                        'http://audiotechracy.blogspot.co.uk/2014/02/get-free-propellerhead-rock-and-metal.html',
                        ):
        print u
        linkvar1 = u
        linkvar2 = u
        linkvar3 = u

    status = api.PostUpdate("The new Synapse Antidote Rack Extension:" + linkvar1 + " #propellerhead #synapse")
    status = api.PostUpdate("Free Propellerhead guitar patches for everyone!" + linkvar2 + " #propellerhead #reason #guitar")
    status = api.PostUpdate("Free Metal and Rock drum samples!" + linkvar3 + " #propellerhead #reason)


    print("Tweets submitted successfully!")

except Exception,e:
    print str(e)    
    print("Twitter submissions have failed!!!")

感谢

当您循环通过
tinyurl.create
的结果时,您每次都将其分配给所有三个
linkvar
变量,因此当循环结束时,所有三个变量都将等于
u
的最后一个值

如果您总是要处理相同数量的URL,则可以将它们显式分配给变量:

linkvar1, linkvar2, linkvar3 = tinyurl.create(
    'http://audiotechracy.blogspot.co.uk/2014/03/reviewing-synapse-antidote-rack.html',
    'http://audiotechracy.blogspot.co.uk/2014/03/free-guitar-patches-for-propellerhead.html',
    'http://audiotechracy.blogspot.co.uk/2014/02/get-free-propellerhead-rock-and-metal.html',
)
如果URL的数量可能会改变,那么最好使用
列表
并为所需结果编制索引:

linkvars = tinyurl.create(
    'http://audiotechracy.blogspot.co.uk/2014/03/reviewing-synapse-antidote-rack.html',
    'http://audiotechracy.blogspot.co.uk/2014/03/free-guitar-patches-for-propellerhead.html',
    'http://audiotechracy.blogspot.co.uk/2014/02/get-free-propellerhead-rock-and-metal.html',
)
status = api.PostUpdate("The new Synapse Antidote Rack Extension:" + linkvars[0] + " #propellerhead #synapse")
status = api.PostUpdate("Free Propellerhead guitar patches for everyone!" + linkvars[1] + " #propellerhead #reason #guitar")
...

很抱歉,当我意识到他们需要缩进时,网站出于某种原因允许我编辑帖子…基本上他们应该在for循环中使用。这样,u的第一个实例将被馈送到第一条tweet,第二条馈送到第二条tweet,第三条馈送到第三条tweet。问题是tinyurl生成的url总是相同的,因为被缩短的链接总是相同的。网站本身有一个自定义域选项,可以解决这个问题,但我找不到任何关于如何编码的示例语法。如果您提供的代码不正确,请更新它。实际上,您在三个缩短的url之间循环:第一个分配给所有3个
linkvars
,然后第二个分配给所有3个
linkvars
等。循环完成后,所有3个
linkvars
等于最后一个缩短的url。你试过我上面提出的第一个建议了吗?当我运行它时,我得到了3个不同的tinyurl分配给变量。@matthewtrevor…如上所述,我不能…由于某些原因,我无法再在上编辑代码,所以…我不知道这是浏览器问题还是网站问题。可能是