前言
好久没写博客了,打算把之前做的一个电影评分资讯推送的微信开发全程记录一下,适合对网络爬虫、微信开发感兴趣的童鞋。在教程开始之前,我想先引出两个问题(这次写博客假装很有条理的样子= =)
1. 为什么想要抓取ONE电影的数据?
因为我平时本身就喜欢去电影院看电影,所以关注到ONE·APP有电影栏目,而且评分信息一目了然,非常适合我这种人,该看哪一部你懂的~(PS:这是写博客当天截的图,下周末去看82分机器猫,嘿嘿)
当然了,豆瓣电影也有评分,但是感觉那里水军很多,所以数据参考价值不大吧。顺便普及一下,“一个”APP是由韩寒创立的,最初只有文学栏目,2016年初才进军电影行业(相关报道),目的就是让电影打分少一点套路,多一分真诚,用心良苦呀,所以我们就用收下韩寒这份好意吧!
2. 我需要提前准备什么东西?
- 首先,你得有一台手机(你是不是傻?请忽略这条),如果16g苹果没内存可用安卓模拟器代替。。。(没有别的意思…)
- 其次,你得有java网络爬虫相关知识,主要是httpclient的使用,解析JSON用的是效率较高的jackson。
- 最后,你得有微信java开发经验,主要解决数据呈现问题,当然你也可以使用仅用的JAVA EE知识做一个网页来呈现数据。因为不能面面俱到,所以此教程可能不会过多讲解这一块内容,这里推荐慕课网视频教程,建议直奔重点看第五章,十分受用。
对了,先放个图,看下微信开发的功能最终效果,噔噔噔噔~↓
还是像模像样的,前面bb了那么多,下面开始我们的教程吧!
思路
1. 抓取数据(Fidder抓包,手机wifi代理)
2. 分析数据(解析JSON/HTML,提取有用信息)
3. 微信开发(文本消息匹配、被动回复图文)
基本思路是对数据的抓取→分析→处理→呈现,下面以ONE·APP的电影数据为例,本教程会把重点放在前面两part。
实战
1. 抓取数据
前期准备
下载抓包工具Fiddler:大家到网上去下载就好了,我这里用的是
V4.6
。设置Fiddler规则(关键):点
Tools->Fiddler Options->HTTPS
,勾选Capture HTTPS CONNECTs
和Decrypt HTTPS traffic
这两项,建议勾上ignore server certificate erros (unsafe)
保证我们抓包时候不会狂弹窗而影响心情;切换到Connections
选项卡,再勾选allow remote computers to connect
这项,记住这里出现的Fiddler listens on port
端口号是8888(当然这里可以自己改成别的,但是建议不要这样做),之后会用到它。
设置完必须重启Fiddler搭建网络环境:使电脑和手机在同一个局域网下,这个为之后的手机wifi代理做准备。
查看电脑内网IP:在命令行输入
ipconfig
查看内网IP,我这里查到是192.168.2.106,先记住,下面会用到。
设置手机wifi代理(关键):不用手机可能有点不一样,我这里以我的安卓小锤子来做示范。
设置->无线网络->已连接的网络详细->高级设置
,开启手动HTTP代理
,填写代理服务器主机名
为电脑内网IP 192.168.2.106,以及代理服务器端口
为Fiddler显示的8888。其他系统和型号的手机自己琢磨下吧~
手机下载“一个”APP:在各大手机应用市场搜索
一个
、ONE
、韩寒
均可下载。
下面开始才是重点
手机打开“一个”APP,在抓包之前先清理Fiddler刚刚的抓取到的包,方便我们等下筛选。
点开“电影”栏目,观察Fiddler的抓包情况。到这里你已经成功了一半了,host为
wufazhuce.com
正是“一个”的域名,而且url为/api/movie/list/0?
(这很restful…),可以确定是我们想要的那个请求。
(但是在实际抓包中,往往会有各种各样的无用信息掺杂在里面,这时候就需要我们去辨别哪些是我们想要的url)
我们通过直接访问刚刚抓取到的url:http://v3.wufazhuce.com:8000/api/movie/list/0?
,打开发现返回的是json格式的数据&#