我正在使用以下腳本來加載URL列表,然後檢查每個錯誤字符串列表的來源。如果在源中找不到錯誤字符串,則該URL將被視爲有效並寫入文本文件。如何修改此腳本以檢查HTTP狀態(404,200)
如何修改此腳本來檢查HTTP狀態?如果一個URL返回一個404,它將被忽略,如果它返回200,那麼該URL將被寫入該文本文件。任何幫助將非常感激。
import urllib2
import sys
error_strings = ['invalid product number', 'specification not available. please contact customer services.']
def check_link(url):
if not url:
return False
f = urllib2.urlopen(url)
html = f.read()
result = False
if html:
result = True
html = html.lower()
for s in error_strings:
if s in html:
result = False
break
return result
if __name__ == '__main__':
if len(sys.argv) == 1:
print 'Usage: %s <file_containing_urls>' % sys.argv[0]
else:
output = open('valid_links.txt', 'w+')
for url in open(sys.argv[1]):
if(check_link(url.strip())):
output.write('%s\n' % url.strip());
output.flush()
output.close()
此方法不適用於404s。如果你訪問一個不存在的站點,它會拋出一個異常,然後你可以通過這個方法檢查代碼。 – Andy 2014-10-17 14:24:56
夠公平的,我看了看文檔,發現了一些有用的東西,被誤解了一點。我自己,我在哪裏可以用'request'。 – 2014-10-17 14:38:19