前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >南航课表爬取与展示

南航课表爬取与展示

作者头像
分享者
发布2022-05-17 19:01:32
5260
发布2022-05-17 19:01:32
举报
文章被收录于专栏:JackYu分享者

由于学校网站登录对于移动端来说实在不友好,因而本人决定能做一个爬取自己课表的网站,且对于移动端友好的网站。但是由于本人水平不够,因而本人花了几个礼拜学习了python爬虫和Django框架,做了一个简易的爬取课表的网站。

项目开源地址

https://github.com/jackyu0915/nuaaTimetableWeb

界面预览

关于本项目

环境要求

要使用本项目你需要下述python库(没写版本默认最新版本):

  • Django == 2.2.11
  • baidu-aip== 2.2.18.0
  • requests
  • bs4
  • lxml
  • pytz
  • Pillow

验证码识别

本项目使用百度文字识别api识别验证码,因而,如果你希望使用的话,请在百度ai开放平台申请,在timetable文件夹下面的views.py中填写你的应用的AppID、API Key、Secret Key,如下所示。

代码语言:javascript
复制

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一行做修改就好了,改成下面的代码:

代码语言:javascript
复制
result = client.basicAccurate(image, options)

服务器部署注意事项

服务器部署django时需要改变settings.py中的设置:

  1. ALLOWED_HOSTS = []这行中需要添加你的host地址,比如ALLOWED_HOSTS = ['kb.ijackyu.com']
  2. 在正式部署后当你把将debug改成False后,静态文件会出现问题,你需要对settings.py中的静态文件项配置。
代码语言:javascript
复制
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'collectedstatic') #将debug改成False后,静态文件目录
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

然后在urls.py文件中添加如下代码:

代码语言:javascript
复制
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文件后执行命令收集静态文件

代码语言:javascript
复制
python manage.py collectstatic

参考:django 将Debug设为False无法加载静态文件[1]

参考项目

NUAA_ClassSchedule[2]Timetable[3]

目前存在问题

  • 使用服务器部署项目后,无法多用户同时登录;
  • 每次登录都会爬取内容,效率低下。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JackYu分享者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目开源地址
  • 界面预览
  • 关于本项目
    • 环境要求
      • 验证码识别
        • 服务器部署注意事项
          • 参考项目
          • 目前存在问题
          相关产品与服务
          文字识别
          文字识别(Optical Character Recognition,OCR)基于腾讯优图实验室的深度学习技术,将图片上的文字内容,智能识别成为可编辑的文本。OCR 支持身份证、名片等卡证类和票据类的印刷体识别,也支持运单等手写体识别,支持提供定制化服务,可以有效地代替人工录入信息。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档