生信媛公众号编辑、生信必修课之软件安装课程作者
当我开始学习爬虫的时候,我在网上也开始找相关教程,大多数都是xx分钟学会爬虫一类的文章。并不是否定这些文章的价值,因为他们的确“教会”我如何爬取网页。但我不想停留只会使用工具这一层面上,这就是我想谈谈自己对爬虫的理解。
在再识Scrapy-下载豆瓣图书封面中我们学会了如何下载图片。但是在大批量爬取的时候我们最怕的就是被网站ban了。官网提供了几种方法: 1. download_delay 因为我们要大批量爬取网页,为了防止过分密集影响到别人的服务器,建议在setting.py中设置DOWNLOAD_DELAY=2,最好是在晚上睡觉的时候跑,这样虽然速度慢了一点,但是被dan的几率会降低很多哦。
紧接着再识Scrapy-爬取豆瓣图书,我们打算把每一本图书的封面都爬下来,毕竟下载图片是一件很棒的事。可以凭借这招去搜集各种表情包呢,还可以省了在某榴辛辛苦苦一个一个打开网页的烦恼呢。
为什么使用Scrapy? 我们可以用requests和beautifulsoup完成一个实用的爬虫,但如果想大规模爬取的话,我们需要学习Scrapy这个优秀Python框架,学习它的哲学思想,可以帮助我们更好写自己的爬虫。
感谢阿里云9.9服务器学生计划,让我有机会实现自己小时候的梦想。为了能够写出这篇教程,我就默默把服务器(Ubuntu14.04 64位)重置了,从头开始。
在Flask中制作博客首页的分类功能(一)的基础上,继续下面的教程。 发布文章的时候会为文章添加一些标签(tag),这些tag需要和数据库中Category表的tag进行比较,如果已经存在该tag,那么需要将新发表文章的tag与已存在的表格进行对应,如果不存在则要新建一个category表。
第一步:构建文章和分类数据模型(models.py) 这里我们使用的关系型数据库。创建一个sql_test.py文件,复制以下内容。 from flask import Flask from flask_sqlalchemy import SQLAlc...
Heroku简明教程 没钱买服务器怎办?现在流行将程序托管到服务器上哦! 配置Heroku 下载符合平台的Heroku Toolbelt, 例如在debian的命令行中 wget -O- https://toolbelt.heroku.com/install-ubuntu.sh | sh 登录Heroku account(没有的话需要注册) heroku login 这是他会认证你heroku账号,并进行更新安装。
建立用户认证系统需要经过以下几步: app/__init__.py中声明并初始化数据库扩展 app/models.py中定义模型 app/auth/__init__.
如果Web程序的用户来自于世界各地,我们就需要合理的处理不同地区的日期和时间(不过估计也就自己看看,但是梦想还是有的) 服务器使用的UTC(协调世界时),我们就只想看到现在几点。
在github上托管hexo中,我们将本地页面上传到github上使其能在互联网上访问到。但是域名是username.github.io总感觉不太cool,如果能通过自己的个性化域名访问的话,那就是再好不过的呀。
1. GitHub Pages 首先你需要一个github的账号,这个不多说。然后根据GitHub Pages的介绍,一步步做,完成后就能在浏览器打开http://username.github.io/。
以下操作建立有一个服务器(ubuntu 14.04)的基础上。 第一步:安装hexo 安装hexo需要先安装node.js和git。 sudo apt-get install git #安装git wget -qO- https://raw.
购买服务器 首先你需要一个服务器,阿里云云翼计划有一个9.9云服务器ECS服务。你怎么买我不管,反正你最后给我搞到一个云服务器。 购买的配置界面 由于阿里云现在限量购买,所以这里只是截个图说明而已,主要说明一点公共镜像选择ubuntu14.04 64位,还有root密码别忘了。
我们花了3个篇幅进行项目结构化,在不知不觉中结构就改造完成了。然而你回头一看,一脸懵逼,这个结构好复杂呀。 最后的结构 第一级:FLASKY2 第二级:app,migrations,config.
在单个文件中开发 程度很方便,但却有个很大的缺点,以为程序在全局作用域中创建,所以无法动态修改配置。运行脚本时,程序实例已经创建,再修改配置为时已晚。这一点对单元测试尤其重要,因为有时为了提高程序测试覆盖度,必须在不同的配置环境中运行程序。
蓝图可以极大地简化大型应用并为扩展提供集中的注册入口 蓝图概念 The basic concept of blueprints is that they record operations to execute when registered on an application.
之前我们只用一个hello.py就能完成了flask创建一个简单的web应用,首先让我们看下之前文件组织形式。 简单项目结构 在mysite文件下有3个顶层文件:migration负责数据库迁移;static存放静态文件如css,js,images等;templates存放网页。
通过Flask学习-理论基础,我们了解了flask的一些功能。当然仅仅知道flask能干什么也不行,更重要的真正学会使用flask,那么后续篇章将开始摸索如何搭建一个简单的博客网页。
开发过程往往伴随着数据库的升级,有时候需要修改数据库模型,修改之后可能还要更新数据库。 Flask-SQLAlchemy 只在数据库表不存在时才会根据模型创建表。
如果每次都要在shell中进行数据库的操作,估计是一件十分不爽的活动,因此最好是在视图函数中通过可视化的方式进行操作。 hello.py中index()视图函数修改 @app.
数据库按照一定规则保存程序数据,程序再发起查询去取回所需的数据。分为文档数据库(NoSQL)和键值数据库(SQL),具体可去百度百科看介绍,这类不再赘述。
进阶部分的web表单介绍了一种让用户提交表单的方法,但是用户如何知道自己状态发生变化了呢。我们可以使用确认消息、警告或者错误提醒的方法。 这种功能是Flask的核心特性---flash 修改hello.py 主要增加了一个条件语句,判断同一会话的前后name是否相同,不同则调用flash。
从这篇开始,主要开始介绍一些难度较大的内容,如web表单,后端数据库等 Web表单 Flask-WTF是flask用来处理表单的一类扩展。具体使用方法如下 hello.
flask本身功能不多,但是具有强大的扩展性,将要使用的扩展罗列如下: flask-script flask-bootstrap 模板框架 flask-wtf web表格 flask-migrate 数据库迁移工具 flask-mail 邮件发送 ...
模板中的链接管理 模板中导航条可以包含不同页面的链接。虽然可以直接在模板中编写简单路由的链接,但是对于动态路由就比较麻烦,而且直接编写URL会对代码定义的路由产生不必要的依赖。
在自定义base.html的基础上继续工作。 主页templates/index.html {% extends 'base.html' %} {% block page_content %} hello world! {% endblock %} 其他页面templates/user.
然后根据上篇对bootsrap中base.html中block部分了解,自定义自己的基本模板 {% extends 'bootstrap/base.html' %} {% block html_attribs %} lang="zh-CN" {% en...
bootstrap是Twitter开发的一个开源框架,提供了css和JavaScript文件,便于构建网页。 hello.py初始化Flask-Bootstrap from flask.
通常情况下,我们不会像hello world一样直接在视图函数中编写返回内容,而是专门返回一个渲染过的模板。Flask使用Jinja2完成这一任务。 1.
建议在虚拟环境下操作 flask和之后flask扩展安装方法: pip install xxxx ps:安装anaconda解决所有烦恼 本文主要参考内容如下: Flask web 开发 基于python的web应用开发实战 2 .
其实这篇可看也可以不看。先说一下django的MTV模型(为啥是django呢,因为我之前学的是django)。 MTV模型 所谓的MTV ( Model–Template–View ),翻译一下就是模型、模板、视图。
基本上所有的计算机语言的学习第一件的事情就是问候一下世界,之前我们都只是在编码器中问候,这次让我们在浏览器中问候一下这个残酷但却美好的世界吧。 from flask import Flask #导入库 app = Flask(__name__) #实例化 @app.