【发布时间】:2014-10-17 14:10:21
【问题描述】:
我目前正在使用以下脚本加载 URL 列表,然后检查每个 URL 的来源以获取错误字符串列表。如果在源中未找到错误字符串,则认为 URL 有效并写入文本文件。
如何修改此脚本以检查 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()
【问题讨论】: