最近這段時間,網頁采集方面的工作做得比較多。用curl技術開發了一個微信文章聚合類產品,把抓取到的數據轉換成json格式,並在android端調用json數據接口加以顯示;基於weiphp做了一個掌上頭條插件,也是用的網頁采集技術;和一個創業團隊一起在做一個高考志願填報系統,所有的數據也是從別的地方抓取。總而言之,網頁抓取與網頁采集技術是一項非常實用的技能,他能讓我們高效快速的獲取我們開發產品所需要的一些基本數據。
網頁抓取與網頁采集過程中難免需要用到抓包技術,所謂抓包,就是我們在訪問一個目標網站的時候,需要分析我們提交給瀏覽器的一些http請求以及提交給瀏覽器的一些數據,在知道請求是如何發起的以及post了哪些數據之后,我們才能針對目標網頁寫出相應的采集程序。特別是在模擬登陸一些需要用戶進行登陸驗證的網站時,抓包分析就變得很重要。
一些瀏覽器自帶抓包分析工具或者有其可擴展的抓包插件,像火狐瀏覽器有firebug插件,IE瀏覽器有HttpWatch。每個抓包工具都有其獨特的功能,這里就不一一介紹了,今天給大家介紹一個好用的抓包工具Fiddler。
可以查看只允許微信瀏覽器訪問的頁面 例如
一、下載地址:
鏈接:http://pan.baidu.com/s/1nunXD6D 密碼:yoy9
二、基本介紹:
三、使用教程:
http://jingyan.baidu.com/article/5d6edee221f0b399ebdeec7f.html
四、補充介紹:
手機APP抓包:http://my.oschina.net/u/587105/blog/322952
現在我們來結合一個具體的例子來講一下如何抓包分析手機APP的請求數據,並達到自己的需求。我這里給大家講一個LOL盒子的抓包實例。
我們知道,LOL盒子沒有網頁版,或者說網頁版的功能並不像手機APP一樣數據整合的那么齊全。如果我們要做一個微信版的LOL盒子,讓用戶在微信端回復一些關鍵詞就能查看一些基本信息,比如用戶在微信中回復“英雄”就能查看LOL全部的英雄信息,包括出裝、符文之類的。那么我們想在微信端實現這些功能,肯定需要數據庫的支持,如果我們的數據從LOL官網抓取的話,免不了要寫很多匹配規則,所以一個簡單高效的方法是直接抓取LOL盒子已經整合了的數據。那么正題開始,我們開始抓LOL盒子集成的全部英雄的數據。
1、首先在手機下載LOL盒子,並進入首頁(請忽略我這個戰五渣的戰斗力指數)
2、打開Fiddler並點Remove all把抓包信息全部清除
3、在LOL盒子中點擊英雄進入查看英雄頁面
4、可以看到查看英雄頁面有免費、我的英雄、全部三個選項
5、這時候我們可以看到Fiddler已經抓到我們需要的數據接口了
6、我們在其中一個數據接口上面點擊右鍵,復制url地址並在瀏覽器中打開
7、就能看到我們需要的周免英雄的數據接口了,是json格式的
到此為止,抓包分析的整個流程大家一目了然了,得到了json接口之后,我們就能用curl技術把數據采集下來,並把json格式的數據轉換成數組或者其他格式,然后就可以存到我們自己的數據庫中了,當用戶在微信中回復關鍵詞時,我們就從數據庫中取出相應的數據並回復給用戶就行了。