用Node.js写的爬取淘宝、美团等平台上电影票价的项目
发布于 8 年前 作者 LiangCY 11026 次浏览 来自 分享

本人Node新手,最近接触到request、cheerio模块,就想着做一个爬虫项目。因为经常去电影院看电影,每次买票都要去淘宝、美团等平台上对比一下票价,就想着能不能自己写个爬虫获取这些网站上的电影票价,放到一个页面里展示,方便的找到最低的票价。 然后就自己动手写了这样一个项目 GitHub地址,目前已经获取到了淘宝、百度糯米、美团的票价信息。 因为本人在南京,所以目前实现的就是获取南京市各电影院的票价信息,项目利用request、cheerio爬取网页,MongoDB存储数据,express+ejs做页面展示。

应用截图:

  • 电影 movies.jpg

  • 影院(因为各平台上电影院的名称都不一致,所以影院信息只能自己手动输入,表格中的字段是可以编辑的) cinemas.jpg

  • 票价 tickets.jpg

遇到的一些问题:

  1. 爬取淘宝电影时,有时候请求频繁会返回输入验证码的页面,就没法获取票价信息,目前是设置了每请求一次后隔一段时间再进行下一次请求,降低频率,但是这样还是不可靠
  2. 美团的网页上的票价全部都是图片,没法获取数值,所以目前只能获取这个票价区域的html进行展示,这样的问题就是没法进行票价比较(现已解决)
21 回复

美团的网页上的票价全部都是图片

会玩

😊 美团和大众点评有开放api的,有没有电影票的不清楚,你可以看看

太棒了。 你是输入电影院名称然后搜索对应的电影名称?

@garfieldzf8 我是在电影页面选择一个电影,然后跳转到另外一个页面,列出所有电影院和这个电影院的最低票价,就像这样 QQ截图20151127174242.png

@SoaringTiger 嗯 有的话那就方便很多了

赞一个……

@jiangli373 这倒是没想到,但这个似乎是兑换券,不是在线选座的那种,不过确实是个不错的思路! QQ截图20151221184436.jpg

不错。支持一下。我也要搞个深圳的、、、

拦截验证码转发到打码平台~

比我的抓小说有意思些, 看看你的

2015.12.23更新

  • 微票电影网页改版,似乎已全部移到移动端,原先的爬取方法失效,放弃微票电影的爬取。
  • 根据@jiangli373 的提议,美团票价改为从猫眼移动端网页爬取,但是移动网页上的HTML部分仍然不是直接通过数字展示。通过分析HTML与CSS,通过偏移距离和宽度判断,成功从HTML中提取出票价数字。
  • 首页添加场次,并按照场次排序。 tickets.jpg

node app.js运行网站 node scraper\index.js开启爬虫 直接做成一个node启动是否更好一些?有些应用程序部署平台一个应用只允许启动一个node index.js

@stray 嗯嗯,因为刚开始是分开写的,所以没注意。

QQ截图20151226210747.png 问下楼主,这个url是怎么得到的. 怎么知道参数的名字.

我是用chrome,访问移动端网页,然后看网络请求 QQ截图20151227143914.jpg

我最近也在做这么个项目,不过身为重度拖延症患者进度很慢,不知道能否将你的代码用到我的项目中。 关于美团的API你可以看下 猫眼的API-简书,希望能够对你有所帮助。

@FrancisKong 嗯嗯 没问题随便用

@LiangCY 最近也在做这种项目,指导一下我呗

来自炫酷的 CNodeMD

@monolyvip 指导谈不上,我也是新手,可以合作

回到顶部