关于最近学习的自动登录网站技术以及post get请求
下面要列出2段内容,一个是目前做的工作,一个是之后要继续进行的工作.(以后完成一部分工作就将后者放到前者内容里面去更新)
1.目前进行的工作:
其实模拟自动登录就是用httpwatch软件进行抓包,,找到你想要的页面,分析post get请求,然后用程序进行模拟就好了,难点就是这个分析抓包的内容,
你想抓取什么,你的抓取信息是通过提交哪个页面的请求的来的,有的时候,得到的结果需要跟当前的网页网址进行合并成为一个新的网址,自己手动执行下看看是否是想要的结果,也就是说需要将一些零碎信息合并,进而得到想要的信息.下面举几个例子,看看相关的信息怎么抓取.
(1) http://book.chaoxing.com/ebook/read_11355849.html
这个是超星数字图书馆的一本书.用chrome打开,右击书页-->审查元素,你会发现,这指向了一个图片:(image1)
这个图片就是上面的那个”导论及全书设计..”的这个书页,也就是说超星这个网站其实没有使用flash技术,将文档封装到flash里面,而只是将书页的image图片放到了一ifame控件里面了.(要是falsh技术的话,我目前还不会通过抓包读取到内容信息,以后需要研究的地方)
但是进一步发现在ie里面查看的话,上面image1图片里面的图片链接在当前的网页源代码里面并没有,那我们还怎么抓取呢?这个时候我们来进行抓包分析下,(其实这个图形的地址是通过一个post请求得到的)。
我们抓包后,直接用find的那个功能进行搜索img6,发现他在 http://readsvr.chaoxing.com/reader_0b5801e441d0b414fc1e08093702df407cad77c1e392ed0cd4619f8c80316c4cb26d8858bd22dddd5f5bdd3a1c6d2be7D4956F019B867DFC47E3B2F54F9BE913.shtml 发送get请求的时候,服务器返回的内容里面,返回的内容为 var str = "img6/041D6EEFF709DF390493FBE63D1B51C2A623C8D5031602DA3D3C8A261075B29913AC5FD377CB16D2E4F05342F5D7F6776E3D533979ED304719124CAA98DB28A32106BE1F16A829B6AEC38FB41FB0C78B126F9ECFFC3189F58A9DAB870934A502D35BB137D71DF8BA7F2FCB88EA5906A34A5C/b59/";而上面的这个连接地址所在位置其实是http://book.chaoxing.com/ebook/read_11355849.html 这个网页源代码里面的ifame框架里面的信息。如下
(ie里面的源代码)
(chrome里面的审查元素)
发现chrome比ie的源代码多了个#document,下面的内容就有img6.。。。。这个就是图片的地址了。由此推测chrome的审查元素可能在后台已经进行了一些post或者get请求,才得到的#document的那些ie源代码没有的内容。
现在总结下超星图书馆的图书的下载方法,主要是捕捉到image的信息,然后下载图片,转化为pdf,之后穿成一本书就好了。主要是怎么得到图片的地址:
http://book.chaoxing.com/ebook/read_11355849.html 源代码里面的iframe里面的http://readsvr.chaoxing.com/reader_0b5801e441d0b414fc1e08093702df407cad77c1e392ed0cd4619f8c80316c4cb26d8858bd22dddd5f5bdd3a1c6d2be7D4956F019B867DFC47E3B2F54F9BE913.shtml ,然后向这个地址发送get请求,得到服务器返回的页面,页面里面有“img6”相关的信息,捕捉到那个地址,然后和一些网址信息合并成为一个image地址,然后向这个地址发送get请求,得到的服务器信息是http://png2.5read.com/image/ss2jpg.dll?did=b59&pid=7E51BEF1B66C6672982807F5540145DD15E9C6ECBE97186ADAA4A2F3EEE6FBEBBAA741BC669867625834FC7A122A60792CBA352CA533E4F6586E602B59D6806C24AC4D5748C58456F24F91621E543A6F94C877ADE6BDE16B736A481457BA604C50543691E5F1CA0C0184F2175936E3114321&jid=/!00003.jpg&a=948DE211E581FF40B0055E94E606D4C5A25AEF4AB539D85C6D08914A7DF8E380FAE02DDB78E73755B070A9A33419DC4C973518B5E978A006E69105ABEB056D85FFCC&zoom=0这个网址,然后从这个网址再发送get请求,得到的才是最终的png流。(到时候看看怎么从这个图片地址下载到iamge图片)
(2)飞信抓取的例子
飞信就说一下抓取遇到的问题吧,其实抓取过程跟上面的差不多,就是用httpwatch来进行抓包就好了。
看到左面的那个其实https://webim.feixin.10086.cn/WebIM/Login.aspx这个网址是登陆的网址,右面的那个返回的set-cookie里面的webim_sessionssid这项非常重要,这个每次你登陆的时候服务器返回值都不一样,这个是在之后的给别人发信息的时候,都需要用到的一个字串,并且在网页源代码里面没有,只能是通过服务器返回来进行截取,但是不管我用java,c#还是python都不能得到正确的set-cookie值,这个ssid就是不能得到。关于飞信这个抓取的具体过程及其代码可以参看litefetion这个开源实现,这个人写的java代码真是好看,我一看就懂了,没有什么乱七八糟的设计模式什么的,只是将一些方法和属性进行了封装,这样挺好的,不要上来就来什么设计模式,太累了。看的恶心。
(3)关于qq的通信协议的抓起和分析以及一些其他的免积分,免权限看对方空间照片的一些分析。
据说qq的通信协议分析起来比较难,因为进行了加密,这个要看看开源实现lunaqq,也是java写的,到时候下载了看看如何分析的。
因为飞信和qq这种东西跟及时消息通知,或者是什么聊天机器人,和之后的自动化控制都能联系上,所以用处是很大的。要好好研究。
(4)百度 豆丁这些网上文库,免积分下载要研究下,因为他们基本上都是用的flash插件技术,基于这个技术是用的什么协议,得进一步研究了。
这些有点cracker的意思了,可能难度会比较大。得请教高人。
以后要做的事情:
(1)飞信中的ssid如何获取?大问题
- 回答:已经解决了,原因竟然是我用的登陆网址错误,我**,应该是https://webim.feixin.10086.cn/WebIM/Login.aspx 但是原来我抓包写的是https://webim.feixin.10086.cn/Login.aspx 我后来又抓包 发现真的是错了,晕。当时咋抓的包呀,真晕。
- 问题:php模拟登陆飞信用curl 但是模拟登陆博客园的时候成功了,哪里出错了?没有写好header?不懂 (php模拟的话,可能会有这样那样的问题,还是以客户端的方式写吧,或者是python或者是java,纯php这种网络应用,确实不擅长这个事情,会有问题,吧软件做到网络上,看来问题多多呀)
(2)qq的通讯协议分析。还有qq客户端的抓包技术,客户端的协议怎么抓取呢?
(3)百度 豆丁文库的flash swf技术将文档的url加密起来,这个怎么破解
(4)免权限看对方的空间相册什么的,这种crack技术是怎么来的呢?
最近有别的事情,这些东西先记着了,以后有时间的话,好好研究下。