<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Designsor &#187; twitter</title>
	<atom:link href="http://www.designsor.com/tag/twitter/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.designsor.com</link>
	<description>End Web Developer&#039;s Blog</description>
	<lastBuildDate>Sat, 14 Jan 2012 02:35:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>如何把twitter的数据展现到自己的页面里</title>
		<link>http://www.designsor.com/2010/06/07/copytwitter/</link>
		<comments>http://www.designsor.com/2010/06/07/copytwitter/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 07:55:22 +0000</pubDate>
		<dc:creator>xiaojue</dc:creator>
				<category><![CDATA[前端开发]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[抓取处理网页HTML]]></category>
		<category><![CDATA[翻墙展示twitter数据]]></category>

		<guid isPermaLink="false">http://www.designsor.com/?p=812</guid>
		<description><![CDATA[咳咳，当然大家都知道推特是被墙的。 那么，翻墙好了，咳咳。 还记得以前饭否么，恩，饭否可以有一个小的flash插件挂在自己的BLOG上，有段js调用，就可以实时更新自己的状态。那时候还觉得，我擦，真神奇，现在想想，其实也就是个内部的api。 今天逛别人blog，看到了一个小应用，就是类似以前饭否的那个东西，只不过数据是twitter的。我一看，哎呀，自己也做个吧。方便一些观众更加了解我，也方便自己更进一步的装X。 看下首页右下角，如图： 额，首先把实现思路和大家说下，由于最近做小偷程序做的太多了……（低头），我第一个实现方法就还是那些老套路。。 恩，那么继续，api是我自己的，由于我的WordPress服务器在美国，所以基本不存在翻墙的问题，访问下面的地址你就懂了。 http://www.designsor.com/demo/tw/curl.php?url=http://twitter.com/xiao_jue/ 恩，简单的一个curl翻墙，php代码如下： &#60;?php $url=$_GET['url']; $ch = curl_init($url); curl_exec($ch); //echo $ch; 可以删掉了，具体为什么见4楼…… curl_close($ch); ?&#62; 主要就是借助我国外的主机，抓取了一下被墙的页面…… 之后嘛，嘿嘿，要制作这个twitter小玩意就好办多了。 js部分代码： /*@author xiaojue*/ /*twitter prowed by jqueryAjax*/ $.ajax({ url:&#8217;http://www.designsor.com/demo/tw/curl.php?url=http://twitter.com/xiao_jue/&#8217;, type:&#8217;get&#8217;, success:function(html){ var reg=/.*?&#60;/span&#62;/ig; //2条抓数据的正则 var reg2=/.*?&#60;/span&#62;/ig; var time=html.match(reg2); //获得时间 var tw=html.match(reg); //获得我说的话 time=time.slice(0,10); //取前10条 tw=tw.slice(0,10).join(”); $(&#8216;#tw&#8217;).html(tw); //把时间加入到说过的话的下面，并且添加hover效果事件。 $(&#8216;#tw span&#8217;).each(function(i){ $(this).after(time[i]); $(&#8216;a&#8217;,this).click(function(){return false;}) }).hover(function(){ [...]]]></description>
			<content:encoded><![CDATA[<p>咳咳，当然大家都知道推特是被墙的。</p>
<p>那么，翻墙好了，咳咳。</p>
<p>还记得以前饭否么，恩，饭否可以有一个小的flash插件挂在自己的BLOG上，有段js调用，就可以实时更新自己的状态。那时候还觉得，我擦，真神奇，现在想想，其实也就是个内部的api。</p>
<p>今天逛别人blog，看到了一个小应用，就是类似以前饭否的那个东西，只不过数据是twitter的。我一看，哎呀，自己也做个吧。方便一些观众更加了解我，也方便自己更进一步的装X。</p>
<p>看下首页右下角，如图：</p>
<p><img class="alignnone" title="twitter" src="http://www.designsor.com/wp-content/uploads/2010/06/1003.jpg" alt="" width="221" height="253" /></p>
<p>额，首先把实现思路和大家说下，由于最近做小偷程序做的太多了……（低头），我第一个实现方法就还是那些老套路。。</p>
<p>恩，那么继续，api是我自己的，由于我的WordPress服务器在美国，所以基本不存在翻墙的问题，访问下面的地址你就懂了。</p>
<p>http://www.designsor.com/demo/tw/curl.php?url=http://twitter.com/xiao_jue/</p>
<p>恩，简单的一个curl翻墙，php代码如下：</p>
<blockquote><p>&lt;?php<br />
$url=$_GET['url'];<br />
$ch = curl_init($url);<br />
curl_exec($ch);<br />
//echo $ch; 可以删掉了，具体为什么见4楼……<br />
curl_close($ch);<br />
?&gt;</p></blockquote>
<p>主要就是借助我国外的主机，抓取了一下被墙的页面……</p>
<p>之后嘛，嘿嘿，要制作这个twitter小玩意就好办多了。</p>
<p>js部分代码：</p>
<blockquote><p>/*@author xiaojue*/<br />
/*twitter prowed by jqueryAjax*/<br />
$.ajax({<br />
url:&#8217;http://www.designsor.com/demo/tw/curl.php?url=http://twitter.com/xiao_jue/&#8217;,<br />
type:&#8217;get&#8217;,<br />
success:function(html){<br />
var reg=/<span class="entry-content">.*?&lt;/span&gt;/ig; //2条抓数据的正则<br />
var reg2=/<span class="published timestamp">.*?&lt;/span&gt;/ig;<br />
var time=html.match(reg2); //获得时间<br />
var tw=html.match(reg); //获得我说的话<br />
time=time.slice(0,10); //取前10条<br />
tw=tw.slice(0,10).join(”);<br />
$(&#8216;#tw&#8217;).html(tw);</span></span></p>
<p>//把时间加入到说过的话的下面，并且添加hover效果事件。</p>
<p>$(&#8216;#tw span&#8217;).each(function(i){<br />
$(this).after(time[i]);<br />
$(&#8216;a&#8217;,this).click(function(){return false;})<br />
}).hover(function(){<br />
$(this).css({&#8216;color&#8217;:'#336699&#8242;})<br />
},function(){<br />
$(this).css({&#8216;color&#8217;:'#666&#8242;})<br />
});</p>
<p>//设置抓取来的时间部分的样式<br />
$(&#8216;#tw span:odd&#8217;).each(function(i){<br />
$(this).css({&#8216;border-bottom&#8217;:'#ccc dashed 1px&#8217;,'padding&#8217;:&#8217;5px 0px&#8217;,'font-size&#8217;:&#8217;9px&#8217;,'color&#8217;:'#666&#8242;});<br />
});<br />
},<br />
error:function(){<br />
$(&#8216;#tw&#8217;).text(&#8216;加载twitter数据失败&#8217;);<br />
}<br />
});</p></blockquote>
<p>js部分应该很容易懂，其实就是分析了下twitter的页面html结构，然后写了2条正则，处理了下自己的blog页面的html，添加了几条样式。就齐活了。</p>
<p>主要提供一个抓取外加翻墙的思路，如果你也想做一个类似的东东而没有看懂上面的某个部分，欢迎留言交流或者gtalk我！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.designsor.com/2010/06/07/copytwitter/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

