前言
前一段时间收集了一些百度分享的资源,在整理的过程中过发现好多都失效了。写一个模块,自动检查是否可用。不可用的打一个标记,然后就不处理了。
相关文章: wordpress直接通过数据库导出文章标题、分类信息到xls表格
实现
class ResourceAdmin(admin.ModelAdmin):
"""
管理类
"""
...
#自定义动作
actions = ['check_url']
def check_url(self, request, queryset):
"""
检查分享链接有效性,并更新状态
"""
for obj in queryset:
tmp_li = obj.rurl.split('"')
if len(tmp_li) > 11:
if not check_url_available(tmp_li[7]):
obj.rstatus = 2
obj.save()
...
import re
import time
import random
from feapder import Request
def check_url_available(link):
"""
检查百度分享是否失效
"""
if not re.match(r'^https?:/{2}\w.+$', link):
return False
res = Request(link, render=False).get_response()
count = 0
for k in res.bs4().find_all('div', class_='share-error-left'):
count += 1
if count > 0:
return False
time.sleep(random.randint(1, 5))
return True
评论 (2)