网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月29日
漏签
0
天
javascript吧
关注:
269,222
贴子:
906,449
看贴
图片
吧主推荐
游戏
1
2
3
4
5
下一页
尾页
155
回复贴,共
5
页
,跳到
页
确定
<<返回javascript吧
>0< 加载中...
[技术项] QQ空间 神奇图片 制作原理
只看楼主
收藏
回复
hzwzjwy
Boolean
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
估计有qq的人都见过 qq空间那种 只要有人转发图片, 其他人看这张图片都会显示出自己的qq头像,名字等信息的 日志吧。
昨天晚上研究了一晚上,虽然说原理上没什么太大难度,但是我一小白node选手,从hello,world开始写,一步步和node 的各种不支持战斗到现在。 终于写出来了。
因为没有vps,所以我暂时决定把这段代码回家之后找个云商放上去。
代码不打算开源,不过我会把一些主要代码和原理写出来。这东西是灰色产业,不想让更多无耻之徒拿来做广告。
先挖个坑,下班回家再填。
G00GLE中国
trycatch
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
沙发围观
----From iTieba for Windows Phone
2025-07-29 05:01:21
广告
不感兴趣
开通SVIP免广告
犀利眼神一滴血
Number
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
围观。到时候回复我个
小浪丨怡情
for
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
到时艾特下我
hzwzjwy
Boolean
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
开写了,由于是手打,更新速度不会很快,不过JS吧也没什么人,慢慢打吧。
首先是名词解释:
http://baike.baidu.com/link?url=u93eOq4_KZwgsaLrhvRk83wOtEpx7osEFk6cGHL_Alz9eR07cTqlt40YnKiJkiDBESeF9dWQ4tFrtVNWh1W2FK
[HTTP_REFERER]
hzwzjwy
Boolean
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
用过qq的都知道,在你打开空间的时候会首先跳转到个人空间
然后开始加载此空间的图片。
如果这张图片是从外链获得,只要把这个外链指向我自己的服务器不就行了吗?
于是我们就可以写个图片服务器,我这里使用node来写,用php啊,java啊也没什么区别。
打开nodejs.org的官网下载安装包即可。
现在开始写了,我写的代码都是很简单的,很多验证啊,都没写。如果有心的话可以自己去写。
上图就是最基础的从本地读取默认图片并以二进制形式输出
hzwzjwy
Boolean
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
此时最简单图片服务器已经建立
这时我们需要从 请求中获取referer信息。去node.org的官网查看获取referer的方法为
var referer = request.headers.referer;
需要注意的是:此处的referer是需要判断的,因为你自己发表文章时和自己从你的日志界面请求的referer和个人空间的都不相同
。
所以我们要做的就是,对referer进行正则或者其他形式过滤,得到 qq号。如果得不到qq号就默认此时显示的是默认的图片。
hzwzjwy
Boolean
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
判断获取扣扣号之后就简单很多了,需要通过curl方法也就是类似于爬###虫方法从qq的接口获取相应信息
我从google那里找到了一个接口
2025-07-29 04:55:21
广告
不感兴趣
开通SVIP免广告
hzwzjwy
Boolean
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
去这个网站可以看到我扣扣号的相应信息为
portraitCallBack({"490454776":["
http://qlogo1.store.qq.com/qzone/490454776/490454776/100
",154,-1,0,0,0,"时间。",0]})
通过此处可以看到我测试扣扣号的头像地址为数组中第一个,大家可以把这个地址复制到浏览器中就可以看到。
查看node.org的文章发现可以通过
http.get 方法爬取信息
zhaoapk
switch
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
明天看。
hzwzjwy
Boolean
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
到这里就算完结了
因为已经通过http.get获取到你qq的信息,剩下就是通过 http.request 方法从网上将qq图片拉过来成二进制文件,然后对着这头像拼接你自己的个人image。
这个方法我看nodeJS没有这个插件,PHP应该有很好的支持,会PHP的同学些这个应该很方便的。我比较懒,为这个再去写一个处理图片的方法估计能把我折腾死,有心的同学去写吧。
上面的http.get也可以换成http.request方法,两者爬取信息的写法基本差不多。
hzwzjwy
Boolean
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
好了,服务器写完。
在自己的电脑上测试就是开启服务
去qq空间发张图片。图片地址为:http:localhost:1337
这个qq空间有html写日志的写法。
然后换另外一个qq号。进这个qq号的个人空间看就行了。
哦,对了,这个图片应该加个缓存的方法,这样别人通过个人空间看你的日志,再点击进入你的空间看也是那副图片,没有缓存的话,看见的就是从本地读取的默认图片。
hzwzjwy
Boolean
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我的10楼被抽了!
我擦!
hzwzjwy
Boolean
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
12楼也被抽了,我擦擦擦
写个毛啊!
2025-07-29 04:49:21
广告
不感兴趣
开通SVIP免广告
hzwzjwy
Boolean
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
@马N甲N号
这技术贴要加精啊!
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示