代码之家  ›  专栏  ›  技术社区  ›  isaiahstanke

每次运行脚本时更新Python变量

  •  1
  • isaiahstanke  · 技术社区  · 1 年前

    我有一个Python脚本,它发送请求,发送头和数据。我可以发送,并且正在工作。我有一个 一个变量。该变量被追加了一个新字符。我的问题是,它只在我每次启动脚本时追加,我需要它在每次发送时追加,而不必每次重新启动脚本来发送新生成的项目。我已将代码粘贴到下面

    `

    import requests
    import string
    import random
    from time import sleep
    
    RequestsSent = 0
    i = 1
    
    if(i > 0):
         input_string = "guest=guest_acc8a45cdf57f7a"
         alphabet = string.ascii_lowercase
         random_character = random.choice(alphabet)
         result_string = input_string + random_character
    
    data = "xxxxxxxxxxxxx"
    
    headers = {'xxxxx': 'xxxxx', 'xxxxx': result_string}
    
    while(True):
         r=requests.post(url, data=data, headers=headers)
         #print(r.text)
         RequestsSent += 1
         i += 1
         print("Requests sent: " + str(RequestsSent))
         print("Sent guess ID: " + str(result_string))
         sleep(5)
    

    `

    输出:

    发送的请求:1 已发送猜测ID:guest_acc8a45cdf57f7f

    发送的请求:2 已发送猜测ID:guest_acc8a45cdf57f7f

    发送的请求:3 已发送猜测ID:guest_acc8a45cdf57f7f

    如果我重新启动脚本,那么它会生成一个新的猜测ID吗

    我试着把append作为一个无限While循环,但它永远都在上面,不发送数据,if语句也不起作用,

    3 回复  |  直到 1 年前
        1
  •  0
  •   farouq aladdin    1 年前

    您似乎希望在每次发送请求时生成一个新的随机字符,并将其附加到“result_string”变量中,而不仅仅是在脚本启动时。当脚本启动时,您发布的当前代码只生成一次随机字符。

    为了实现您想要的行为,您需要将生成随机字符的代码移动到发送请求的循环中。以下是您的代码的修改版本,应该可以按预期工作:

        import requests
        import string
        import random
        from time import sleep
        
        RequestsSent = 0
        
        data = "xxxxxxxxxxxxx"
        headers = {'xxxxx': 'xxxxx'}
        
        while True:
            input_string = "guest=guest_acc8a45cdf57f7a"
            alphabet = string.ascii_lowercase
            random_character = random.choice(alphabet)
            result_string = input_string + random_character
        
            r = requests.post(url, data=data, headers=headers)
            
            RequestsSent += 1
            print("Requests sent: " + str(RequestsSent))
            print("Sent guess ID: " + str(result_string))
            sleep(5)
    

    使用此代码,随机字符的生成将在循环中移动,因此每次循环迭代(发送请求时),都会在“result_string”中添加一个新的随机字符。这应该会导致您所寻找的行为,即猜测ID随每个请求而更改,而无需重新启动脚本。

        2
  •  0
  •   Christian Daniel Avila Sanchez    1 年前

    如果我正确理解你的问题,你会有不同的猜测ID。如果是这样的话,你需要为每个帖子请求生成一个随机字符,否则它只会生成一个,每个帖子请求都会使用相同的字符

    import requests
    import string
    import random
    from time import sleep
    
    RequestsSent = 0
    i = 1
    
    def get_random_guess(input_string: str):
         alphabet = string.ascii_lowercase
         random_character = random.choice(alphabet)
         result_string = input_string + random_character
         return result_string
    
    data = "xxxxxxxxxxxxx"
    input_string = "guest=guest_acc8a45cdf57f7a"
    
    
    while(True):
         result_string = get_random_guess(input_string)
         headers = {'xxxxx': 'xxxxx', 'xxxxx': result_string}
         r=requests.post(url, data=data, headers=headers)
         #print(r.text)
         RequestsSent += 1
         i += 1
         print("Requests sent: " + str(RequestsSent))
         print("Sent guess ID: " + str(result_string))
         sleep(5)
    
        3
  •  0
  •   Alderven    1 年前

    只需将字符串生成置于 while True 循环:

    import string
    import random
    import requests
    
    i = 0
    while True:
        random_character = random.choice(string.ascii_lowercase)
        result_string = 'guest=guest_acc8a45cdf57f7a' + random_character
        r = requests.post('https://google.com', headers={'xxxxx': result_string})
        print('Sent guess ID: ' + str(result_string))
        i += 1
    

    输出:

    Sent guess ID: guest=guest_acc8a45cdf57f7ab
    Sent guess ID: guest=guest_acc8a45cdf57f7am
    Sent guess ID: guest=guest_acc8a45cdf57f7ac
    Sent guess ID: guest=guest_acc8a45cdf57f7ai