我是python的新手,目前正在尝试实现以下目标:
我想在input.csv文件中检查多个URL的HTTP响应状态代码:
id url
1 https://www.google.com
2 https://www.example.com
3 https://www.testtesttest.com
...
并将结果另存为“状态”列,在我的output.csv文件中标记掉的URL或出现其他问题的URL:
id url status
1 https://www.google.com All good!
2 https://www.example.com All good!
3 https://www.testt75esttest.com Down
...
到目前为止,我正在尝试以下操作,但未成功:
import requests
import pandas as pd
import requests.exceptions
df = pd.read_csv('path/to/my/input.csv')
urls = df.T.values.tolist()[1]
try:
r = requests.get(urls)
r.raise_for_status()
except (requests.exceptions.ConnectionError, requests.exceptions.Timeout):
print "Down"
except requests.exceptions.HTTPError:
print "4xx, 5xx"
else:
print "All good!"
不知道如何获得上述结果并将其另存为output.csv文件中的新列:
df['status'] = #here the result
df.to_csv('path/to/my/output.csv', index=False)
有人可以帮忙吗?提前致谢!
id url
1 https://www.google.com
2 https://www.example.com
3 https://www.testtesttest.com
将以上内容复制到剪贴板。然后,运行以下代码。您需要遍历网址并将状态附加到列表中。然后,将该列表设置为新列。
import requests
import pandas as pd
import requests.exceptions
df = pd.read_clipboard()
df
urls = df['url'].tolist()
status = []
for url in urls:
try:
r = requests.get(url)
r.raise_for_status()
except (requests.exceptions.ConnectionError, requests.exceptions.Timeout):
status.append("Down")
except requests.exceptions.HTTPError:
status.append("4xx, 5xx")
else:
status.append("All good!")
df['status'] = status
df.to_csv('path/to/my/output.csv', index=False)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句