由于学校网站登录对于移动端来说实在不友好,因而本人决定能做一个爬取自己课表的网站,且对于移动端友好的网站。但是由于本人水平不够,因而本人花了几个礼拜学习了python爬虫和Django框架,做了一个简易的爬取课表的网站。
https://github.com/jackyu0915/nuaaTimetableWeb
要使用本项目你需要下述python库(没写版本默认最新版本):
本项目使用百度文字识别api识别验证码,因而,如果你希望使用的话,请在百度ai开放平台申请,在timetable文件夹下面的views.py中填写你的应用的AppID、API Key、Secret Key,如下所示。
def img_to_str1(image_path):
# 百度文字基本识别设置
config = {
'appId': 'AppID',
'apiKey': 'API Key',
'secretKey': 'Secret Key'
}
client = AipOcr(**config)
image = get_file_content(image_path)
options = {}
# 设置语言为英文
options["language_type"] = "ENG"
result = client.basicGeneral(image, options)
if 'words_result' in result:
return '\n'.join([w['words'] for w in result['words_result']])
上面所示的是百度文字识别的基础接口,识别成功率有待提高,但是每天能免费调用50000次。而我最终使用的是高精度版,每天可以免费试用500次。因而你需要调用img_to_str()这个函数,其实就是在上面的result一行做修改就好了,改成下面的代码:
result = client.basicAccurate(image, options)
服务器部署django时需要改变settings.py中的设置:
ALLOWED_HOSTS = ['kb.ijackyu.com']
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'collectedstatic') #将debug改成False后,静态文件目录
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
然后在urls.py文件中添加如下代码:
from django.views import static
from django.conf import settings
from django.conf.urls import url
urlpatterns += [
url(r'^static/(?P<path>.*)$', static.serve, {'document_root': settings.STATIC_ROOT }, name='static'),#注意这里只能使用url方法,不能使用path方法
]
最后,在目录目录下新建collectstatic文件后执行命令收集静态文件
python manage.py collectstatic
参考:django 将Debug设为False无法加载静态文件[1]
NUAA_ClassSchedule[2]Timetable[3]
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有