设为首页
收藏本站
开启辅助访问
登录
立即注册
论坛首页
BBS
资源站采集问题
免费送云VPS
搜索
搜索
流量变现70%分成
全国楼凤小姐姐
招商联系客服
招商联系客服
招商联系客服
招商联系客服
公告导航
公告导航
获取积分方法
牛牛插件助手
赞片退还积分
技术支持声明
站长工具
站长工具
爱站综合查询
站长综合查询
草料二维码
WHOIS查询
备案查询
加密解密
资源推荐
资源推荐
索尼资源
闪电资源
无尽资源
OK资源
快车资源
最大资源
本版
文章
帖子
群组
用户
牛牛论坛
»
论坛首页
›
牛牛cms教程区
›
其他教程
›
用爬虫和Flask打造属于自己的电影网站
返回列表
发新帖
用爬虫和Flask打造属于自己的电影网站
[复制链接]
480
|
0
|
2024-7-29 01:30:23
|
显示全部楼层
|
阅读模式
也许你曾经为了一部电影找遍全网却没发现任何有用的资源,也许你曾经被披着电影外衣的网站忽悠进去而染上木马病毒。一部小小的电影搞得你心力交瘁,怀疑人生。不过,作为一名合格的程序员,一向以write the code,change the world所著称,我们写的代码都能改变世界,岂能被这种小事情所屈服?不是不干,要干就干一票大的!这一次,我们祭上万能的Python语言,用爬虫技术加上Flask框架,打造一个属于自己的电影网站!界面清爽无木马,PC手机随心看!今年告别单身,征服女神的任务,就从这里开始啦~
一、准备工作
1. 首先你要一个Python解释器。在目前为止,Python存在两大主流的版本,一个是Python2.7,一个是Python3.6。Python2.x历史悠久,支持的库多,但是毕竟是老版本,一些历史遗留的问题未能得到解决,比如编码问题,一些内置函数的执行性能等。而Python3优化了Python2中的很多底层代码,并且默认的字符串就是unicode类型,无需担心编码问题,很多函数因为使用了生成器而大大的提高了代码的执行效率。但是Python3因为比较新,所以一些第三方库还来不及支持Python3(比如进程管理工具supervisor就还未支持Python3),但是慢慢的都在支持Python3了,并且Python3也是未来的一个趋势,Python2已经被官方宣布在2020年将全面停止更新。所以现在学Python,首选Python3。因此我们本个课程,也用Python3来讲解。如果您还没有安装Python3,可以到官网:https://www.python.org,根据自己的操作系统,选择相应的版本下载。安装过程非常简单,一顿下一步就可以啦,但是为了不必要的麻烦,给个小提示,千万不要放在有中文的路径下面哦~
2. 安装完Python以后,如果不出意外,应该是已经安装了pip。通过pip可以非常方便的管理Python第三方包。可以在CMD或者任何shell终端输入pip -V,如果提示了找不到pip命令,说明pip没有安装成功。那么可以通过easy_install install pip来进行安装。
3. requests库。这个库是专门用来做网络请求的。他比Python自带的urllib库好用很多,在urllib3的基础之上做了进一步的封装,让我们写网络请求的时候不要处理一些类似于url编码等相关的无意义的事情。他的slogan是Http for Humans,意思是对人友好的Http请求库,可以说是非常的形象了。这个库不是Python内置的,因此需要通过pip进行安装。安装方式也是非常简单,只要进入cmd或者shell终端,输入pip install requests即可安装。
4. Scrapy框架。最强大的爬虫框架,没有之一!注意,他不是一个简简单单的库,而是一个框架。实现了从url匹配,到数据下载,数据解析,数据存储等一套完整的组件。让你写爬虫更加轻松,更加健壮,更加高效。我们也是用这个框架来帮我们处理爬虫,这样我们可以不间断的批量的爬取电影信息,然后存储到数据库中。Scrapy也不是Python内置的,需要通过pip install scrapy安装。
5. MySQL服务器。数据爬取下来后,要存储起来,以后才能通过网页的形式展现出来。存储数据的方式有很多,比如可以存储到JSON文件中、MySQL数据库中、SQLite数据库等。而MySQL由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,已经被广泛的应用在了大中小型网站中。我们的数据从网站上爬取下来后,以后还需要用在网站中展示。因此我们采用MySQL来存储数据。MySQL安装非常简单,可以到MySQL官网下载安装即可:
https://dev.mysql.com/downloads/windows/installer/5.7.html。
6. Django框架。Django框架是Python web开发中一款非常主流的框架。上手快,功能齐全,可以胜任大型网站的任务。他也是集HTTP协议、URL匹配、数据库管理、HTML模版渲染等于一体的框架。数据已经从爬到数据库中了,下一步我们就是使用Django框架实现一个网站,动态的加载数据!根据自己的需求,想做成什么样就做成什么样!Django也是第三方的,需要通过pip install django进行安装。
二、项目架构:
在写具体的代码之前,先来理顺一下整个项目框架的结构。爬虫负责抓取网站的数据,并对抓取下来的数据进行解析和清洗,然后存储到数据库中。之后Django再从数据库中读取数据,并将读取的数据显示在网页中。结构图如下:
三、爬虫实现:
crqpirxc1e5.jpg
俗话说,巧妇难为无米之炊,再牛逼的爬虫程序如果没有好的数据来源,也爬不到有价值的数据。因此选择一个好的资源网站至关重要。这里我们选择的是电影天堂和阳光电影两个特别良心的网站。这两个网站上有大量的高清视频资源,每部电影都配有详细的信息,包括演员,导演,年代,类型,豆瓣评分,视频截图等,最重要的是附有迅雷下载链接,可以说是非常良心了。但是这个网站经常会有一些广告(广告是主要的主要的收入来源),当你在点击某个链接的时候,会首先给你弹出一个新页面,里面嵌入的就是广告资源,然后你再次点击,才能进入到下一个页面。并且有时候这个网站还会被Chrome浏览器识别为病毒网站(不知是否真的有病毒),导致无法正常访问。另外最后一个就是,这个网站的界面相当不美观,对于我这种审美要求高的(特别是美女(*^_^*))码农来说,实在不能忍受。因此如果我们能把上面的电影资源都爬下来,再按照自己的需求实现一个网站,显示这些信息,那就很有意思了。无论从个人角度还是商业角度来说,都是非常有价值的!这里我们使用的是Scrapy框架来实现的,那么以下主要从数据抓取,数据解析和数据存储三个角度来进行分析:
1. 数据抓取和解析:在写代码之前,我们首先来分析下电影天堂这个网站,他的首页是包含了各种类型资源的一个组合。我们现在要爬取的是电影信息,因此点击“更多最新电影”跳转到最新电影的列表页面,如下图:
可以看到这个列表页包含了许多我们想要的电影资源,但是我们现在爬,只能爬取到这一页的电影信息,怎么能把其他页面的电影也爬下来呢,这时候就要找到每个页面的url规则了。我们可以看到,第一页电影的URL是:http://www.dytt8.net/html/gndy/dyzz/list_23_1.html,第二页电影的URL是:http://www.dytt8.net/html/gndy/dyzz/list_23_2.html。所以我们得出一个结论就是,URL的前面部分都是一样的,最后那个数字是几,代表的是第几页。接下来就是去爬详情页面了。详情页的例图如下:
包括电影的信息、海报,都能在这个里面找到。那么数据爬取的代码如下:
2.数据存储:这里我们把爬取下来的数据存储到MySQL数据库中。需要在pipeline中进行实现。示例代码如下:
以上便是爬虫部分的讲解和示例代码演示,当然因为篇幅限制,无法把所有细节都介绍到位,如果您对这个项目还有不懂的地方,我们在2月24日在网易云课堂会有直播,从零开始开始讲解,如何分析页面,如何提取元素,scrapy框架是如何运行的等。有什么不懂的还可以和老师进行互动,相信你一定可以学会的!
四、网站实现:
网站这里我们用的是Flask框架。在后台做好数据的提取,在前端做好页面的显示。示例代码如下:
做完后的效果图如下(只是简简单单的做了个demo,UI还需要进一步美化):
五、总结:
这个项目可以说是用到了Python大部分的技术要点。有Python网络爬虫、Scrapy框架、Python web开发、Flask框架等。内容比较丰富,知识点太多。无法通过一篇简单的文章把所有技术细节都介绍到位。如果您对这个项目感兴趣,并且想要进一步学习,可以在2月24日晚8点,知了课堂和网易云课堂联合举办了一场免费的直播盛宴,我将从零开始,为您讲述这个项目背后的一切技术要点,您将获得以下收益:
1. Python实战体验;
2. 网络爬虫实战技巧;
3. 数据解析技术要点;
4. Python web开发技术流程;
5. Flask、Django框架的使用;
6. 数据爬下来,如何产生价值;
7. 用爬虫和Flask/Django技术实现自己的电影网站;
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
公共账号
292
主题
0
回帖
880
积分
高级会员
高级会员, 积分 880, 距离下一级还需 9120 积分
高级会员, 积分 880, 距离下一级还需 9120 积分
积分
880
加好友
发消息
回复楼主
返回列表
采集帮助
苹果cms教程
海洋cms教程
飞飞cms教程
图文推荐
2024新版苹果cmsV10 MXProV4.5自适应影视站主题模板
2024-08-18
牛牛论坛如何获得积分
2024-09-22
小龟影视基于苹果CMS系统的双端视频播放APP源码
2024-08-15
【百度爬虫2.4版】站群SEO系统/高质量养站/寄生虫/泛目录/自动收
2024-08-29
新手如何做seo网站?
2024-10-08
热门排行
1
PHP显示当前在线用户
2
2024新版苹果cmsV10 MXProV4.5自适应影视站
3
PHP显示当前在线用户
4
小龟影视基于苹果CMS系统的双端视频播放APP
5
牛牛论坛如何获得积分
6
2024全新改版美化小小影视app双端源码开源
7
各位有什么推荐的采集站吗
8
【百度爬虫2.4版】站群SEO系统/高质量养站/
9
苹果CMS v10 插件安装使用介绍
10
苹果cmsv10海螺自适应4号模板