如何使用文件导入 python 请求以输出状态码
How to import python requests using a file in order to output the status code
我是 Python(3) 的新手所以请不要 bash 我 :D
我正在使用以下代码导入包含不同 URL 的 .txt 文件,以便我可以检查它们的状态代码。
在我的示例中,我添加了 4 个站点 URLs
这里是 import.txt 只有一个 URL:
https://site1.site
https://site2.site
https://site3.site
https://site4.site
https://site5.site
虽然这是 py 脚本本身:
import requests
with open('import.txt', 'r') as f :
for line in f :
print(line)
#try :
r = requests.get(line)
print(r.status_code)
#except requests.ConnectionError :
# print("failed to connect")
这是回复:
https://site1.site
https://site2.site
https://site3.site
https://site4.site
https://site5.site
400
即使 site3 和 site4 是 301,而 site5 有连接失败响应,我只收到 400 响应,它适用于所有提交的 URLs。
如果我 request.head 使用以下脚本对每个 URL 进行处理,那么我会收到正确的页面状态代码('Moved Permantly' 对于下面的示例)。这是单个请求脚本:
import requests
try:
r = requests.head("http://site3.net/")
if r.status_code == 200:
print('Success!')
elif r.status_code == 301:
print('Moved Permanently')
elif r.status_code == 404:
print('Not Found')
# print(r.status_code)
except requests.ConnectionError:
print("failed to connect")
感谢
您对 requests.get()
的调用在 for
循环之外,因此只执行一次。尝试缩进相关行,如下所示:
import requests
with open('import;txt', 'r') as f :
for line in f :
print(line)
#try :
r = requests.get(line)
print(r.status_code)
#except requests.ConnectionError :
# print("failed to connect")
Ps。我建议你使用 4-space 缩进。这样,就更容易发现此类错误。
我是 Python(3) 的新手所以请不要 bash 我 :D
我正在使用以下代码导入包含不同 URL 的 .txt 文件,以便我可以检查它们的状态代码。 在我的示例中,我添加了 4 个站点 URLs
这里是 import.txt 只有一个 URL:
https://site1.site
https://site2.site
https://site3.site
https://site4.site
https://site5.site
虽然这是 py 脚本本身:
import requests
with open('import.txt', 'r') as f :
for line in f :
print(line)
#try :
r = requests.get(line)
print(r.status_code)
#except requests.ConnectionError :
# print("failed to connect")
这是回复:
https://site1.site
https://site2.site
https://site3.site
https://site4.site
https://site5.site
400
即使 site3 和 site4 是 301,而 site5 有连接失败响应,我只收到 400 响应,它适用于所有提交的 URLs。
如果我 request.head 使用以下脚本对每个 URL 进行处理,那么我会收到正确的页面状态代码('Moved Permantly' 对于下面的示例)。这是单个请求脚本:
import requests
try:
r = requests.head("http://site3.net/")
if r.status_code == 200:
print('Success!')
elif r.status_code == 301:
print('Moved Permanently')
elif r.status_code == 404:
print('Not Found')
# print(r.status_code)
except requests.ConnectionError:
print("failed to connect")
感谢
您对 requests.get()
的调用在 for
循环之外,因此只执行一次。尝试缩进相关行,如下所示:
import requests
with open('import;txt', 'r') as f :
for line in f :
print(line)
#try :
r = requests.get(line)
print(r.status_code)
#except requests.ConnectionError :
# print("failed to connect")
Ps。我建议你使用 4-space 缩进。这样,就更容易发现此类错误。