Go语言之高级篇Beego框架之爬虫项目实战
一、爬虫项目
1、爬虫基础
a、网页上面会有相同的数据

b、去重处理
布隆过滤器
哈希存储
c、标签匹配:
正则表达式
beautiful soup或lxml这种标签提取库
d、动态内容
phantomjs
selenium
二、爬豆瓣网电影
网站地址:https://www.douban.com/
准备工作:
1、在数据库中创建表
movie.sql
CREATE TABLE `movie_info` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`movie_id` int(11) unsigned NOT NULL COMMENT '电影id',
`movie_name` varchar(100) COMMENT '电影名称',
`movie_pic` varchar(200) COMMENT '电影图片',
`movie_director` varchar(50) COMMENT '电影导演',
`movie_writer` varchar(50) COMMENT '电影编剧',
`movie_country` varchar(50) COMMENT '电影产地',
`movie_language` varchar(50) COMMENT '电影语言',
`movie_main_character` varchar(50) COMMENT '电影主演',
`movie_type` varchar(50) COMMENT '电影类型',
`movie_on_time` timestamp DEFAULT '0000-00-00 00:00:00' COMMENT '电影上映时间',
`movie_span` varchar(20) COMMENT '电影时长',
`movie_grade` varchar(5) COMMENT '电影评分',
`remark` varchar(500) DEFAULT '' COMMENT '备注',
`_create_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '创建时间',
`_modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`_status` tinyint(1) DEFAULT '1',
PRIMARY KEY (`id`),
KEY `idx_movie_id` (`movie_id`),
KEY `idx_create_time` (`_create_time`),
KEY `idx_modify_time` (`_modify_time`)
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8 COMMENT='电影信息表';
2、创建一个新项目
D:\GoFiles\src\web>bee new crawl_movice
______
| ___ \
| |_/ / ___ ___
| ___ \ / _ \ / _ \
| |_/ /| __/| __/
\____/ \___| \___| v1.10.0
2019/02/16 10:49:19 INFO ▶ 0001 Creating application...
create D:\GoFiles\src\web\crawl_movice\
create D:\GoFiles\src\web\crawl_movice\conf\
create D:\GoFiles\src\web\crawl_movice\controllers\
create D:\GoFiles\src\web\crawl_movice\models\
create D:\GoFiles\src\web\crawl_movice\routers\
create D:\GoFiles\src\web\crawl_movice\tests\
create D:\GoFiles\src\web\crawl_movice\static\
create D:\GoFiles\src\web\crawl_movice\static\js\
create D:\GoFiles\src\web\crawl_movice\static\css\
create D:\GoFiles\src\web\crawl_movice\static\img\
create D:\GoFiles\src\web\crawl_movice\views\
create D:\GoFiles\src\web\crawl_movice\conf\app.conf
create D:\GoFiles\src\web\crawl_movice\controllers\default.go
create D:\GoFiles\src\web\crawl_movice\views\index.tpl
create D:\GoFiles\src\web\crawl_movice\routers\router.go
create D:\GoFiles\src\web\crawl_movice\tests\default_test.go
create D:\GoFiles\src\web\crawl_movice\main.go
2019/02/16 10:49:20 SUCCESS ▶ 0002 New application successfully created!
Go语言之高级篇Beego框架之爬虫项目实战的更多相关文章
- Go语言之高级篇beego框架安装与使用
一.beego框架 1.beego框架简介 beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API.Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计 ...
- Go语言之高级篇beego框架之layui框架应用
1.layui前端框架 参考地址:https://www.layui.com
- Go语言之高级篇beego框架之配置beego环境
1.配置beego环境 进入部署目录中 软件部署目录: 把要部署的软件代码,放在src目录下面. 启动项目
- Go语言之高级篇beego框架之config、httplib、context
一.httplib 1.配置文件解析 这是一个用来解析文件的库,它的设计思路来自于 database/sql,目前支持解析的文件格式有 ini.json.xml.yaml,可以通过如下方式进行安装: ...
- Go语言之高级篇beego框架之view
1.基本语法 go统一使用了{{ 和 }}作为左右标签,没有其它的标签符号. 如果你想要修改为其它符号,可以修改配置文件. 使用.来访问当前位置的上下文 使用$来引用当前模板根级的上下文 2.使用方法 ...
- Go语言之高级篇beego框架之controller调用model
一.controller调用model 开发规范,就该把对数据库的操作写在model文件夹中. 示例: views/main.go package main import ( _ "web/ ...
- Go语言之高级篇beego框架之model设计构造查询
一.model设计构造查询 QueryBuilder 提供了一个简便,流畅的 SQL 查询构造器.在不影响代码可读性的前提下用来快速的建立 SQL 语句. QueryBuilder 在功能上与 ORM ...
- Go语言之高级篇beego框架之模型(Models)
一.模型(Models) 1.beego-orm的相关特性 支持 Go 的所有类型存储 -轻松上手,采用简单的 CRUD 风格 -自动 Join 关联表 跨数据库兼容查询 允许直接使用 SQL 查询/ ...
- Go语言之高级篇beego框架之cookie与session
1.cookie的用法 this.Ctx.SetCookie("name", name, maxage, "/") this.Ctx.SetCookie(&qu ...
随机推荐
- MySQL数据库排序选择的作用和该如何选择编码格式
前言:在创建数据库的时候,会有这样一个选项->排序规则,平时在创建数据库的时候并没有注意,只是选择了默认,也没感觉有什么问题,今天看到这个突然好奇起来,所以看了一些资料做了以下的一些总结,若有错 ...
- PHP 闭包
一.闭包基本用法闭包(Closure)又叫做匿名函数,也就是没有定义名字的函数.比如下面的例子: // 定义一个闭包,并把它赋给变量 $f $f = function () { return 7; } ...
- 【C++ Primer | 15】虚继承
虚基类 一.虚基类介绍 多继承时很容易产生命名冲突,即使我们很小心地将所有类中的成员变量和成员函数都命名为不同的名字,命名冲突依然有可能发生,比如非常经典的菱形继承层次.如下图所示: 类A派生出类B和 ...
- python全栈开发day47-jqurey
一.昨日内容回顾 二.今日内容总结 1.jquery的介绍 1).为什么要用jquery? # window.onload 事件有事件覆盖的问题,因此只能写一个事件. # 代码容错性差 # 浏览器兼容 ...
- User Agent 设置
感谢版主回复,版主贴的方法网上到处都是,我试了很多次都是不行的,有用的方法都几乎这个到处转贴的信息淹没了. 今天我总算在一个博客找了到可行的方法,转过来和大家分享 Windows Registry E ...
- 063 日志分析(pv uv 登录人数 游客人数 平均访问时间 二跳率 独立IP)
1.需求分析 分析指标 pv uv 登录人数 游客人数 平均访问时间 二跳率 独立IP 2.使用的日志(一号店),会话信息 3.创建数据库 4.创建源表,存储源数据 5.创建我们需要的use表 6.创 ...
- 044 HIVE中的几种排序
1.order by:全局排序 select * from emp order by sal; 对于一个reduce才有用. 2.sort by:对于每个reduce进行排序 set mapreduc ...
- 63:二叉搜索树的第k个结点
/** * 面试题63:二叉搜索树的第k个结点 * 给定一颗二叉搜索树,请找出其中的第k大的结点 * 例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4. ...
- Sea Battle CodeForces - 729D
题意: 有n个格子,a条船,每条船占b个格子.事先已经射击了k个格子,且这k次射击不会射到船上,求再射击几次可以射到某一条船的某一部分 思路: 观察样例可以发现,如果五个0,船的长度是3,那么这五个0 ...
- mongoDB的配置以及运行
干嘛的:数据库,nosql(非关系型) 场景:解决大规模数据集合多重数据种类 一.mongoDb安装: 下载地址: https://www.mongodb.com/download-center ...