本人Node新手,最近接触到request、cheerio模块,就想着做一个爬虫项目。因为经常去电影院看电影,每次买票都要去淘宝、美团等平台上对比一下票价,就想着能不能自己写个爬虫获取这些网站上的电影票价,放到一个页面里展示,方便的找到最低的票价。 然后就自己动手写了这样一个项目 GitHub地址,目前已经获取到了淘宝、百度糯米、美团的票价信息。 因为本人在南京,所以目前实现的就是获取南京市各电影院的票价信息,项目利用request、cheerio爬取网页,MongoDB存储数据,express+ejs做页面展示。
应用截图:
-
电影
-
影院(因为各平台上电影院的名称都不一致,所以影院信息只能自己手动输入,表格中的字段是可以编辑的)
-
票价
遇到的一些问题:
- 爬取淘宝电影时,有时候请求频繁会返回输入验证码的页面,就没法获取票价信息,目前是设置了每请求一次后隔一段时间再进行下一次请求,降低频率,但是这样还是不可靠
- 美团的网页上的票价全部都是图片,没法获取数值,所以目前只能获取这个票价区域的html进行展示,这样的问题就是没法进行票价比较(现已解决)
美团的网页上的票价全部都是图片
会玩
😊 美团和大众点评有开放api的,有没有电影票的不清楚,你可以看看
太棒了。 你是输入电影院名称然后搜索对应的电影名称?
@garfieldzf8 我是在电影页面选择一个电影,然后跳转到另外一个页面,列出所有电影院和这个电影院的最低票价,就像这样
@SoaringTiger 嗯 有的话那就方便很多了
赞一个……
好东西啊
@jiangli373 这倒是没想到,但这个似乎是兑换券,不是在线选座的那种,不过确实是个不错的思路!
不错。支持一下。我也要搞个深圳的、、、
拦截验证码转发到打码平台~
比我的抓小说有意思些, 看看你的
2015.12.23更新
- 微票电影网页改版,似乎已全部移到移动端,原先的爬取方法失效,放弃微票电影的爬取。
- 根据@jiangli373 的提议,美团票价改为从猫眼移动端网页爬取,但是移动网页上的HTML部分仍然不是直接通过数字展示。通过分析HTML与CSS,通过偏移距离和宽度判断,成功从HTML中提取出票价数字。
- 首页添加场次,并按照场次排序。
node app.js运行网站 node scraper\index.js开启爬虫 直接做成一个node启动是否更好一些?有些应用程序部署平台一个应用只允许启动一个node index.js
@stray 嗯嗯,因为刚开始是分开写的,所以没注意。
问下楼主,这个url是怎么得到的. 怎么知道参数的名字.
我是用chrome,访问移动端网页,然后看网络请求
我最近也在做这么个项目,不过身为重度拖延症患者进度很慢,不知道能否将你的代码用到我的项目中。 关于美团的API你可以看下 猫眼的API-简书,希望能够对你有所帮助。
@FrancisKong 嗯嗯 没问题随便用
@monolyvip 指导谈不上,我也是新手,可以合作