برنامه گرفتن وضعیت سایت به زبان پایتون نسخه ۰.۱
يكشنبه, ۸ تیر ۱۳۹۳، ۱۱:۱۲ ق.ظ
برنامه ای که امروز نوشتم یک فایل متشکل از تعدادی سایت رو از شما میگیره (بدون http) و سایت هایی که وجود دارند رو برای شما در یک فایل به نام ok.txt میریزه. همچنین با اجرا کردن این برنامه خروجی به طور همزمان برای شما به نمایش در میاد... :)
برای دیدن کد به ادامه مطلب برید:
#!/usr/bin/python
import os
import sys
import urllib2
print '''
#Date: Sun Jun 29 11:09:28 IRDT 2014
#This program takes a file list of urls as an argument then prints the status code of them.
_\|/_
(o o)
+----oOO-{_}-OOo--------------+
|@Author: Triumph +
|@Name: url-status +
|#Mail: linusecmail@gmail.com +
|@Version:0.1 +
+-----------------------------+
'''
if len(sys.argv) < 2:
print 'usage: python %s <file-urls>' % (sys.argv[0])
sys.exit(2)
while True:
question = raw_input("Do you want to remove previous results? (y=yes | n=no | q=quit) ")
if question =='y':
os.system("rm -f ok.txt")
print "\nThe file \"ok.txt\" is removed successfully.\n"
break
elif question == 'n':
print "\nThe reults are appending...\n"
break
elif question == 'q':
print "\nYou are quitting...\n"
sys.exit(1)
else:
print "You must enter \'y\' for \"yes\" or \'n\' for \"no\"...\n"
print '%-15s %20s' % ('URL_PAGE', 'STATUS')
FileName = sys.argv[1]
InputFile = open(FileName)
OK = open('ok.txt', 'a+')
for url in InputFile:
try:
status = urllib2.urlopen('http://' + url, timeout=8).getcode()
print '%-15s\t%10s' % ('http://' + url.strip(), status)
if status == 200:
OK.write('%-15s\t%15s' % ('http://' + url.strip(), status) + '\n')
OK.flush()
except urllib2.URLError, e:
print '%-15s\t%15r' % ('http://' + url.strip(), e)
if e == "HTTPError()":
OK.write('%-15s\t%15s' % ('http://' + url.strip(), status) + '\n')
OK.flush()
except (KeyboardInterrupt, SystemExit):
print "\nKeyboardInterruption with Ctrl+c signal"
sys.exit(1)
OK.close()