注:一篇去年的旧文,发现没在知乎发过,过来补个档。有个小问题是项目中淘票票的网页反爬提高且变更较多,目前暂不可用了。
时常有同窗会问我相似的问题:我已经学完了 Python 基础,也照着例子写过一点爬虫代码 / 了解过 django 的入门项目 / 看过数据分析的教程……而后就不知道要作什么了。接下来应该 如何继续提高编程能力呢 ?前端
个人答案很简单:python
不要把“项目”想象得太复杂,以为必定是那种收钱开发的才能称做项目(若是有这种项目固然会更好)。对于刚刚跨入编程世界的你来讲,任何一个小项目都是好的开始。你所须要的,就是 一双发现问题的眼睛 。生活中工做中的一些小事情小麻烦,多想一步,是否是能够写一小段代码来解决。django
一开始,或许你的解决方案很笨拙,很复杂,原本5分钟就能搞定的事情,你写代码却花了一个小时。但对你来讲,此时的目的并不仅是解决问题,而是这个过程自己。 在折腾的过程当中,你的经验才会增加 。这是你单纯看教程所没法达到的,再好的教程也替代不了动手。(有时候会有人评论说,这功能直接用xxx就能够了,干吗还要本身写代码。对此我不作评价,由于我知道他不是来学编程的。)编程
咱们编程教室也陆续提供了一些项目案例。你能够参考咱们的示例代码,或者更好的是,本身去思考一个解决方案并实现。咱们的案例很多都放在了网站 http:// lab.crossincode.com 上演示,欢迎你们去浏览。内容会持续更新,可留意咱们微信公众号和知乎专栏里的文章。后端
今天介绍的这个项目就源自生活中的一个场景: 买电影票 。api
当你打算周末出门看场电影的时候,就必然面临三个终极问题:服务器
一般你只须要打开经常使用的购票App,选一部最近口碑不错的片子,去熟悉的影院看看有哪些场次就能够了。但有时你也会发现,一样一部电影,不远的两家影院,价格就差不少,不一样的购票App也会由于促销活动之类有不一样的优惠力度,一张票可能会相差几十元。但若是每次都去几个App把最近的排片和价格都浏览一遍,那也太麻烦了。因而就有了咱们这个小项目:微信
电影票比价网框架
在咱们这个网页上,会展现出当前热映的电影。进入每部电影,选择 城市 、 区域 、 影院 和 日期 ,就能够看到最近的 排片时间 和不一样渠道的 价格 。目前,咱们是从 糯米 、 淘票票 和 时光网 三个渠道获取价格来作演示。(注:项目中淘票票现已失效)函数
本项目是对爬虫和Web网站的综合运用,适合已经有掌握python基础,而且对此有一些了解的同窗做为练手项目。涉及到模块主要是:
项目主要有三块:
使用豆瓣 api 每日更新上映的影片列表。
项目的核心部分,用来处理影院信息和排名信息的抓取。
项目自己是一个网站,总体是在 django 的框架之中。
# 获取淘票票某地区某电影院某影片价格# 1. 根据查询条件获取影院 id# 2. 根据影院 id 获取该影院正在上映电影# 3. 获取 查询电影的排片时间表连接# 4. 拿到价格 def get_movie_tickets(self, *args): assert len(args) == 4, 'not enough parameters \n type in -h for help' movie_name = args[3] mt = TaoppDt() cinema_url = mt.search(*args[:3]) assert cinema_url, '未查询到该电影院' pattern = re.compile(r'cinemaId=(\d+)') cinemaid = re.findall(pattern, cinema_url)[0] film_url = 'https://dianying.taobao.com/cinemaDetailSchedule.htm?cinemaId=' + str(cinemaid) content = self.rq.req_url(film_url) assert content, '请求失败,请检查 /utils/req.py 中 req_url 函数是否工做正常' soup = bs4.BeautifulSoup(content, 'lxml') soup_film = soup.find('a', text=re.compile(movie_name)) assert soup_film, '未查询到该电影' film_param = soup_film['data-param'] return self._get_ticket_info(film_param)
完整的代码 和 详细代码说明 已上传 Github,获取下载地址请在 公众号(Crossin的编程教室) 里回复 电影票 。
════
其余文章及回答:
学编程:如何自学Python | 新手引导 | 一图学Python
欢迎搜索及关注: Crossin的编程教室