Python检测URL链接可用性
需求:Python检测URL状态,并追加保存200的URL。
#! /usr/bin/env python
#coding=utf-8
import sys
import requests
def getHttpStatusCode(url):
try:
request = requests.get(url)
httpStatusCode = request.status_code
return httpStatusCode
except requests.exceptions.HTTPError as e:
return e
if __name__ == "__main__":
with open('1.txt', 'r') as f:
for line in f:
try:
status = getHttpStatusCode(line.strip('\n'))#换行符
if status == 200:
with open('200.txt','a') as f:
f.write(line + '\n')
print line
else:
print 'no 200 code'
except Exception as e:
print e
#! /usr/bin/env python
# -*--coding:utf-8*-
import requests
def request_status(line):
conn = requests.get(line)
if conn.status_code == 200:
with open('url_200.txt', 'a') as f:
f.write(line + '\n')
return line13 else:
return None
if __name__ == '__main__':
with open('/1.txt', 'rb') as f:
for line in f:
try:
purge_url = request_status(line.strip('\n'))
except Exception as e:
pass
#! /usr/bin/env python
#coding:utf-8
import os,urllib,linecache
import sys
result = list()
for x in linecache.updatecache(r'1.txt'):
try:
a = urllib.urlopen(x.replace('/n','')).getcode()
#print x,a
except Exception,e:
print e
if a == 200:
#result.append(x) #保存
#result.sort() #排序结果
#open('2.txt', 'w').write('%s' % '\n'.join(result)) #保存入结果文件
with open ('200urllib.txt','a') as f: ## r只读,w可写,a追加
f.write(x + '\n')
else:
print 'error'
def getHttpStatusCode(url):
try:
request = requests.get(url)
httpStatusCode = request.status_code
return httpStatusCode
except requests.exceptions.HTTPError as e:
return e
df_url['new_status'] = df_url['link'].apply(getHttpStatusCode) #保存返回的状态码
useful_link = df_url[df_url['new_status']==200] #筛选状态码为200的链接
参考链接:
https://www.cnblogs.com/xxpythonxx/p/13788535.html