我目前正在尝试通过多线程来加快我的请求,但我不确定如何按照我想要的方式进行操作。我知道 grequests,但它们似乎需要一个 URL 列表。我有一个包含在 URL 中的起始编号的代码,并希望所有线程在获得 200 的 status_code 后停止
我试图通过 grequests 来实现这一点,但无法使其发挥作用。也尝试过线程,但不知道如何在找到工作 URL 后停止所有线程
import requests
import webbrowser
def url_request(number):
url = "http://website.com/download/" + str(number) + ".zip"
r = requests.head(url)
if r.status_code == 404:
print(url + " - 404 Not Found!")
number += 1
url_request(number)
elif r.status_code == 200:
webbrowser.open(url)
print(url + " - 200 Found!")
if __name__ == "__main__":
url_request(int(input("Starting number: ")))
我想要代码做的是request.head
在“起始编号”之后使用一个数字一次执行多个,并在其中一个线程找到状态码为 200 的 url 后停止。