利用Fiddler手机抓包对ONE·APP网页爬虫实现电影资讯微信Java开发

前言

好久没写博客了,打算把之前做的一个电影评分资讯推送的微信开发全程记录一下,适合对网络爬虫、微信开发感兴趣的童鞋。在教程开始之前,我想先引出两个问题(这次写博客假装很有条理的样子= =)

1. 为什么想要抓取ONE电影的数据/h3>

因为我平时本身就喜欢去电影院看电影,所以关注到ONE·APP有电影栏目,而且评分信息一目了然,非常适合我这种人,该看哪一部你懂的~(PS:这是写博客当天截的图,下周末去看82分机器猫,嘿嘿)

电影功能截图

还是像模像样的,前面bb了那么多,下面开始我们的教程吧!


思路

1. 抓取数据(Fidder抓包,手机wifi代理)

2. 分析数据(解析JSON/HTML,提取有用信息)

3. 微信开发(文本消息匹配、被动回复图文)

基本思路是对数据的抓取→分析→处理→呈现,下面以ONE·APP的电影数据为例,本教程会把重点放在前面两part。


实战

1. 抓取数据

前期准备

  1. 下载抓包工具Fiddler:大家到网上去下载就好了,我这里用的是。

  2. 设置Fiddler规则(关键):点,勾选这两项,建议勾上保证我们抓包时候不会狂弹窗而影响心情;切换到选项卡,再勾选这项,记住这里出现的端口号是8888(当然这里可以自己改成别的,但是建议不要这样做),之后会用到它。

    Fiddler设置2
    设置完必须重启Fiddler
  3. 搭建网络环境:使电脑和手机在同一个局域网下,这个为之后的手机wifi代理做准备。

  4. 查看电脑内网IP:在命令行输入查看内网IP,我这里查到是192.168.2.106,先记住,下面会用到。

    手机wifi代理设置
  5. 手机下载“一个”APP:在各大手机应用市场搜索、、均可下载。

下面开始才是重点

  1. 手机打开“一个”APP,在抓包之前先清理Fiddler刚刚的抓取到的包,方便我们等下筛选。

    电影请求
    我们通过直接访问刚刚抓取到的url:,打开发现返回的是json格式的数据,正是我们想要的。到此为止,我们的抓取数据part已经完成了,应该不困难吧= =
    电影请求详细分析
  2. 我们把有用的信息记录下来,很有必要。
    请求方式&地址:GET http://v3.wufazhuce.com:8000/api/movie/list/0
    备注:url中的最后一个参数代表电影ID下标,用于分页功能,假如你第一页最后一个电影记录的ID是84,那么你再次请求地址http://v3.wufazhuce.com:8000/api/movie/list/84,得到的数据就是从85开始,也就是下一页电影的数据。这里要靠大家软件开发的经验以及亲手尝试过才知道,听不懂也没关系,这一个参数不足以影响我们的开发。你只要知道默认是0,获取最新的电影数据就行了。
    json返回部分有用数据

    参数 类型 说明
    res int 返回码:0-成功,1-失败
    data array 数据集合
    • id
    int 电影ID,唯一标识
    • title
    string 电影名
    • score
    int 评分
    • cover
    string 封面地址

当然了,这种是json数据格式的分析过程,这个跟过程跟你得业务有关,而我只需要实现一开始所呈现的那种图片效果,以上这些数据就够了。使用jackson来解析数据。

如果返回的数据是xml格式,也很好办,跟json差不多,使用xstream解析。

如果返回的数据是带视图模型(也就是有页面的),那就要用浏览器审查元素或者查看源代码,细心观察需要爬取的数据都在哪些div里面,观察它或者它的父元素是否有什么标志性的id甚至是class,这样就能通过jsoup解析它们。网页爬虫可以参考我上一篇爬虫文章《基于WebMagic写的一个csdn博客小爬虫》,框架里面用到的就是强大的jsoup。

数据分析完后,接下来就是真正的coding了!


3.微信开发

  1. 添加maven依赖(maven配置视频,或者手动下载jar包)

  2. 添加wx-tools.jar(我一个室友写的框架,下载jar包,查看官方文档,3分钟上手教程)
    当然了,如果嫌麻烦你可以不使用任何的微信后台框架,如果没学习过微信java开发的请移步到慕课网视频教程,直奔重点看第五章。

  3. 编写爬虫业务(重点)

    自己写的一个HTTP工具类,拥有doGet方法,实现了传入一个url,输出网页字符串文本。

  4. 编写处理器:调用业务方法,实现星星效果,装配图文消息,发送给用户

  5. 新建拦截规则:匹配文本类消息“电影”,看不懂也没关系,真的没关系= =

  6. 剩下就是微信服务器验证了,在开发过程中我们应该本地调试过才放到自己服务器上,之前使用的内网映射(穿透)工具ngrok(怀念一下)不知道何时用不了了,所以一直在用很不稳定的花生壳,大家自己选择吧。到此为止,我们的教程已经顺利完成了,此处应有掌声,啪啪啪啪~

要源码请继续往下看↓


后记

教程中只涉及到了电影资讯的爬虫,还有查天气、查快递等更多功能请关注公众号尽情调戏(好像有BUG,仅作为一个DEMO参考。放二维码目的不是为了增粉啊,真的不是啊,只是想演示以上教程,赶紧扫吧~

利用Fiddler手机抓包对ONE·APP网页爬虫实现电影资讯微信Java开发

来源:李奕锋

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年6月22日
下一篇 2016年6月22日

相关推荐