我有一个状态码检查url,给我一个列表的url +状态码-我想得到一个消息时状态200收到



我已经使用这个状态检查器好几个月了。工作完美无缺,虽然我很想在状态200被发现时得到一条消息,如果没有,它会自动循环并从头开始(考虑实现电报/不和谐消息)。如果是这样的话,我甚至不需要一个完整的url列表作为文件,只需要一个带有url状态200的文件。

有什么办法吗?

import requests
import csv
import time
import urllib3
urllib3.disable_warnings()
SLEEP = 0.3 
url_list = []
url_statuscodes = []
url_statuscodes.append(["url","status_code"]) 

def getStatuscode(url):
try:
r = requests.head(url,verify=False,timeout=5) # it is faster to only request the header
return (r.status_code)
except:
return -1

with open('urls.csv', newline='') as f:
reader = csv.reader(f)
for row in reader:
url_list.append(row[0])

for url in url_list:
print(url)
check = [url,getStatuscode(url)]
time.sleep(SLEEP)
url_statuscodes.append(check)

with open("urls_withStatusCode.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerows(url_statuscodes)

我试着检查200,但它没有真正工作。

Response.status_code属性是int,所以正常的相等性检查应该工作:

if r.status_code == 200:
pass

如果您希望接受任何低于400的状态码,则可以使用Response.ok代替。

相关内容

最新更新