<?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>juust ~ php oddities &#187; seo</title>
	<atom:link href="http://www.juust.org/index.php/category/seo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.juust.org</link>
	<description>Unordered list of one element</description>
	<lastBuildDate>Wed, 28 Jul 2010 14:26:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>interesting : seo panel</title>
		<link>http://www.juust.org/index.php/interesting-seo-panel/2010/07/</link>
		<comments>http://www.juust.org/index.php/interesting-seo-panel/2010/07/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 01:19:24 +0000</pubDate>
		<dc:creator>juust</dc:creator>
				<category><![CDATA[optimization]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[seo tips and tricks]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://www.juust.org/?p=1278</guid>
		<description><![CDATA[That seems fun, an open source seo toolkit. It is a five second install multi-user package offering simple stats, but more interesting, a semi automated website directory submitter in a clean interface, and could be a valuable service offer if you run an seo community site. 
It is PHP MVC and, what sparked my interest, [...]]]></description>
			<content:encoded><![CDATA[<p>That seems fun, an <a href="http://www.seopanel.in/download/">open source seo toolkit</a>. It is a five second install multi-user package offering simple stats, but more interesting, a semi automated website directory submitter in a clean interface, and could be a valuable service offer if you run an seo community site. </p>
<p>It is PHP MVC and, what sparked my interest, it has a plugin interface.<br />
I love that, It could be going somewhere over the next few years. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.juust.org/index.php/interesting-seo-panel/2010/07/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mayday</title>
		<link>http://www.juust.org/index.php/mayday/2010/05/</link>
		<comments>http://www.juust.org/index.php/mayday/2010/05/#comments</comments>
		<pubDate>Sun, 30 May 2010 20:13:24 +0000</pubDate>
		<dc:creator>juust</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://www.juust.org/?p=1250</guid>
		<description><![CDATA[Should I write a post about Mayday ? It half reminds me of the fairytale of the princess on the pea. Mayday is when Matt moved the pea slightly to the conservative right and all white hooded princesses made their bid for Drama Queen. 
Personally I hope one day Google split social and business search, [...]]]></description>
			<content:encoded><![CDATA[<p>Should I write a post about Mayday ? It half reminds me of the fairytale of the <a href="http://hca.gilead.org.il/princess.html">princess on the pea</a>. Mayday is when Matt moved the pea slightly to the conservative right and all white hooded princesses made their bid for Drama Queen. </p>
<p>Personally I hope one day Google split social and business search, deprecate the entire web2.0 social linking and switch to real time traffic data as ranking algorithm for social search, and restore the peer reviewed web for business search with a stronger focus on local and regional delivery and consumer reviews as an alternative ranking mechanism.</p>
<p>Current rankings are most decided on the seo-sem effort of companies and don&#8217;t offer end user review on an efficient product list or regional index (aren&#8217;t we lucky we have Google Adwords to help our customers find our offers !). Sites like <a href="http://foursquare.com/">4Square </a> are closing in on delivering search results on local area venues<br />
using the mobile web, which is an interesting development.  </p>
<p>[added 3-6-10] is that just me or did I suddenly notice <a href="http://www.google.com/search?hl=en&#038;safe=off&#038;tbo=p&#038;tbs=frim%3A1&#038;q=juust&#038;aq=f&#038;aqi=g7g-s2g1&#038;aql=&#038;oq=&#038;gs_rfai=">Google doing a Beta for Social Search</a> yesterday ? basically based on its own profile data, and sites and linkdata from my webmaster tools account (I am not unconditionally happy about that).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.juust.org/index.php/mayday/2010/05/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tweets on Google&#8217;s frontpage</title>
		<link>http://www.juust.org/index.php/tweets-on-googles-frontpage/2010/01/</link>
		<comments>http://www.juust.org/index.php/tweets-on-googles-frontpage/2010/01/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 21:08:54 +0000</pubDate>
		<dc:creator>juust</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://www.juust.org/?p=1196</guid>
		<description><![CDATA[The article about using Yahoo Pipes for Twitter ammo deserves an update. When I wrote it (june 2009), Google had not announced they would be listing Tweets on their frontpage.
I was curious if Google list tweets from an pipes account. The specific pipe does use Google News and other trusted news sources for it&#8217;s feed, [...]]]></description>
			<content:encoded><![CDATA[<p>The article about <a href="http://www.juust.org/index.php/tweeting-pipes/2009/06/">using Yahoo Pipes for Twitter ammo</a> deserves an update. When I wrote it (june 2009), Google had not announced they would be listing Tweets on their frontpage.</p>
<p>I was curious if Google list tweets from an pipes account. The specific pipe does use Google News and other trusted news sources for it&#8217;s feed, so Tweets should rank high in relevance to the keyword, but I wasn&#8217;t sure Google allow automated accounts to hit the frontpage in Search.</p>
<p>I typed in &#8220;microfinance twitter&#8221; at Google Search and got this as result :</p>
<p><a rel="lightbox nofollow" href="http://www.juust.org/wp-content/uploads/2010/01/microfinance.png"><img src="http://www.juust.org/wp-content/uploads/2010/01/microfinance-300x187.png" alt="microfinance" title="microfinance" width="500" height="300" class="alignnone size-medium wp-image-1197" /></a></p>
<p>There she is : <a href="http://www.twitter.com/NeoFinance">@NeoFinance</a>, one of my accounts that runs on a Yahoo Pipe. </p>
<p>The account itself is small, 750 tweets, it follows 60 accounts, and has 125 followers, mostly microfinance related. No automated following scripts, just the pipe. I had it offline for a few weeks but restarted it last week. </p>
<p><a rel="lightbox nofollow" href="http://www.juust.org/wp-content/uploads/2010/01/neofinance.png"><img src="http://www.juust.org/wp-content/uploads/2010/01/neofinance-300x191.png" alt="neofinance" title="neofinance" width="500" height="320" class="alignnone size-medium wp-image-1198" /></a></p>
<p>Google do seem to consider Pipes-accounts acceptable.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.juust.org/index.php/tweets-on-googles-frontpage/2010/01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>bing api with php and simplexml</title>
		<link>http://www.juust.org/index.php/bing-api-with-php-simplexml/2009/09/</link>
		<comments>http://www.juust.org/index.php/bing-api-with-php-simplexml/2009/09/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 15:22:17 +0000</pubDate>
		<dc:creator>juust</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[bing]]></category>

		<guid isPermaLink="false">http://www.juust.org/?p=861</guid>
		<description><![CDATA[About scraping results off of Bing : Bing use a set of about eight cookies. You can grab 200 results with php curl, as 20 pages of 10, but after the first 200 the Bing server checks for the cookie and for lack of one returns a blank page. I can fidget with the curl [...]]]></description>
			<content:encoded><![CDATA[<p><em>About scraping results off of Bing : Bing use a set of about eight cookies. You can grab 200 results with php curl, as 20 pages of 10, but after the first 200 the Bing server checks for the cookie and for lack of one returns a blank page. I can fidget with the curl cookiejar, but Bing also offer a straighforward API.</em></p>
<p>Using the <a href="http://www.bing.com/developers/default.aspx" rel="nofollow" title="where you can get your bing api v2 appid">Bing API</a> to list search results is easier. </p>
<h3>Bing TOS : not for seo rank checks</h3>
<p>In the last paragraph of the <a href="http://www.bing.com/developers/s/API%20Basics.pdf" rel="nofollow">api guide</a>, Bing give a quick recap of their TOS, you can do max 7 queries per second, and using the results for SEO rank checks is explicitly prohibited. </p>
<p>These following snippets (<a href="http://www.juust.org/bingapi.txt" rel="nofollow">text source</a>) are hence <strong>explicitly not</strong> to be used for bing search engine result page (&#8217;serp&#8217;) rank checks. </p>
<h3>bing api with simplexml</h3>
<p>So here is one for web results using php simplexml. The web api (which uses namespaces) allows for retrieving max 1000 results per term at max 50 results per query, you can specify the number of results and the offset, where to start grabbing results.</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$Appid</span><span class="sy0">=</span><span class="st0">&quot;A_VERY_LONG_STRING&quot;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$Query</span> <span class="sy0">=</span> <span class="st0">&quot;seo rank check&quot;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$Numres</span> <span class="sy0">=</span> <span class="nu0">50</span><span class="sy0">;</span> <span class="co1">//max 50</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$Offset</span> <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span> &nbsp; &nbsp;<span class="co1">//up to 1000</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$url</span> <span class="sy0">=</span> <span class="st0">&#39;http://api.search.live.net/xml.aspx?</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">Appid=&#39;</span><span class="sy0">.</span><span class="re1">$Appid</span><span class="sy0">.</span><span class="st0">&#39;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&amp;query=&#39;</span><span class="sy0">.</span><span class="re1">$Query</span><span class="sy0">.</span><span class="st0">&#39;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&amp;sources=web</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&amp;web.count=&#39;</span><span class="sy0">.</span><span class="re1">$Numres</span><span class="sy0">.</span><span class="st0">&#39;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&amp;web.offset=&#39;</span><span class="sy0">.</span><span class="re1">$Offset</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$feed</span> <span class="sy0">=</span> simplexml_load_file<span class="br0">&#40;</span><span class="re1">$url</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//use the web: namespace</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$children</span> <span class="sy0">=</span> &nbsp;<span class="re1">$feed</span><span class="sy0">-&gt;</span><span class="me1">children</span><span class="br0">&#40;</span><span class="st0">&#39;http://schemas.microsoft.com/LiveSearch/2008/04/XML/web&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re1">$children</span><span class="sy0">-&gt;</span><span class="me1">Web</span><span class="sy0">-&gt;</span><span class="me1">Results</span><span class="sy0">-&gt;</span><span class="me1">WebResult</span> <span class="kw1">as</span> <span class="re1">$d</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="re1">$d</span><span class="sy0">-&gt;</span><span class="me1">Title</span><span class="sy0">.</span><span class="st0">&#39;&lt;br /&gt;&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="re1">$d</span><span class="sy0">-&gt;</span><span class="me1">Description</span><span class="sy0">.</span><span class="st0">&#39;&lt;br /&gt;&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="re1">$d</span><span class="sy0">-&gt;</span><span class="me1">Url</span><span class="sy0">.</span><span class="st0">&#39;&lt;br /&gt;&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="re1">$d</span><span class="sy0">-&gt;</span><span class="me1">DisplayUrl</span><span class="sy0">.</span><span class="st0">&#39;&lt;br /&gt;&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>..and one for the pictures using php simplexml :</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$Appid</span><span class="sy0">=</span><span class="st0">&quot;A_VERY_LONG_STRING&quot;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$Query</span> <span class="sy0">=</span> <span class="st0">&quot;alkmaar&quot;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$Numres</span> <span class="sy0">=</span> <span class="nu0">10</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$Offset</span> <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$url</span> <span class="sy0">=</span> <span class="st0">&#39;http://api.search.live.net/xml.aspx?&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$url</span> <span class="sy0">.=</span> <span class="st0">&#39;Appid=&#39;</span><span class="sy0">.</span><span class="re1">$Appid</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$url</span> <span class="sy0">.=</span> <span class="st0">&#39;&amp;query=&#39;</span><span class="sy0">.</span><span class="re1">$Query</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$url</span> <span class="sy0">.=</span> <span class="st0">&#39;&amp;sources=image&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$url</span> <span class="sy0">.=</span> <span class="st0">&#39;&amp;image.count=&#39;</span><span class="sy0">.</span><span class="re1">$Numres</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$url</span> <span class="sy0">.=</span> <span class="st0">&#39;&amp;image.offset=&#39;</span><span class="sy0">.</span><span class="re1">$Offset</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$feed</span> <span class="sy0">=</span> simplexml_load_file<span class="br0">&#40;</span><span class="re1">$url</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//use the mms: namespace &nbsp; &nbsp; &nbsp; </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">$children</span> <span class="sy0">=</span> &nbsp;<span class="re1">$feed</span><span class="sy0">-&gt;</span><span class="me1">children</span><span class="br0">&#40;</span><span class="st0">&#39;http://schemas.microsoft.com/LiveSearch/2008/04/XML/multimedia&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">echo</span><span class="br0">&#40;</span><span class="st0">&#39;&lt;ul ID=&quot;resultList&quot;&gt;&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re1">$children</span><span class="sy0">-&gt;</span><span class="me1">Image</span><span class="sy0">-&gt;</span><span class="me1">Results</span><span class="sy0">-&gt;</span><span class="me1">ImageResult</span> <span class="kw1">as</span> <span class="re1">$d</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span><span class="br0">&#40;</span><span class="st0">&#39;&lt;li class=&quot;resultlistitem&quot;&gt;&lt;a href=&quot;&#39;</span> <span class="sy0">.</span> <span class="re1">$d</span><span class="sy0">-&gt;</span><span class="me1">DisplayUrl</span> <span class="sy0">.</span> <span class="st0">&#39;&quot;&gt;&#39;</span> <span class="sy0">.</span> <span class="re1">$d</span><span class="sy0">-&gt;</span><span class="me1">Title</span> <span class="sy0">.</span> <span class="st0">&#39;&lt;/a&gt;&lt;br /&gt;&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span><span class="br0">&#40;</span><span class="st0">&#39;&lt;img src=&quot;&#39;</span> <span class="sy0">.</span> <span class="re1">$d</span><span class="sy0">-/&gt;</span>Thumbnail<span class="sy0">-&gt;</span><span class="me1">Url</span><span class="sy0">.</span> <span class="st0">&#39;&quot; /&gt;&lt;br /&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;</span><span class="sy0">.</span><span class="re1">$d</span><span class="sy0">-&gt;</span><span class="me1">Thumbnail</span><span class="sy0">-&gt;</span><span class="me1">ContentType</span><span class="sy0">.</span><span class="st0">&#39;&lt;br /&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#39;</span><span class="sy0">.</span><span class="re1">$d</span><span class="sy0">-&gt;</span><span class="me1">Thumbnail</span><span class="sy0">-&gt;</span><span class="me1">Height</span><span class="sy0">.</span><span class="st0">&#39;&lt;br /&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#39;</span><span class="sy0">.</span><span class="re1">$d</span><span class="sy0">-&gt;</span><span class="me1">Thumbnail</span><span class="sy0">-&gt;</span><span class="me1">Width</span><span class="sy0">.</span><span class="st0">&#39;&lt;br /&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#39;</span><span class="sy0">.</span><span class="re1">$d</span><span class="sy0">-&gt;</span><span class="me1">Thumbnail</span><span class="sy0">-&gt;</span><span class="me1">FileSize</span><span class="sy0">.</span><span class="st0">&#39;&lt;br /&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/li&gt;&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">echo</span><span class="br0">&#40;</span><span class="st0">&quot;&lt;/ul&gt;&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>I actually like that api, I am going to use that.</p>
<h3>bing api with json</h3>
<p>Bing seem to prefer you use json, less bandwidth usage. After their example in the api basics guide :</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$Numres</span> <span class="sy0">=</span> <span class="nu0">10</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$Offset</span> <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$Query</span><span class="sy0">=</span><span class="st0">&#39;alkmaar&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$url</span> <span class="sy0">=</span> <span class="st0">&#39;http://api.search.live.net/json.aspx?&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$url</span> <span class="sy0">.=</span> <span class="st0">&#39;Appid=&#39;</span><span class="sy0">.</span><span class="re1">$Appid</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$url</span> <span class="sy0">.=</span> <span class="st0">&#39;&amp;query=&#39;</span><span class="sy0">.</span><span class="re1">$Query</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$url</span> <span class="sy0">.=</span> <span class="st0">&#39;&amp;sources=image&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$url</span> <span class="sy0">.=</span> <span class="st0">&#39;&amp;image.count=&#39;</span><span class="sy0">.</span><span class="re1">$Numres</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$url</span> <span class="sy0">.=</span> <span class="st0">&#39;&amp;image.offset=&#39;</span><span class="sy0">.</span><span class="re1">$Offset</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$response</span> <span class="sy0">=</span> <span class="kw3">file_get_contents</span><span class="br0">&#40;</span><span class="re1">$url</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$jsonobj</span> <span class="sy0">=</span> json_decode<span class="br0">&#40;</span><span class="re1">$response</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">echo</span><span class="br0">&#40;</span><span class="st0">&#39;&lt;ul ID=&quot;resultList&quot;&gt;&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re1">$jsonobj</span><span class="sy0">-&gt;</span><span class="me1">SearchResponse</span><span class="sy0">-&gt;</span><span class="me1">Image</span><span class="sy0">-&gt;</span><span class="me1">Results</span> <span class="kw1">as</span> <span class="re1">$value</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">echo</span><span class="br0">&#40;</span><span class="st0">&#39;&lt;li class=&quot;resultlistitem&quot;&gt;&lt;a href=&quot;&#39;</span> <span class="sy0">.</span> <span class="re1">$value</span><span class="sy0">-&gt;</span><span class="me1">Url</span> <span class="sy0">.</span> <span class="st0">&#39;&quot;&gt;&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">echo</span><span class="br0">&#40;</span><span class="st0">&#39;&lt;img src=&quot;&#39;</span> <span class="sy0">.</span> <span class="re1">$value</span><span class="sy0">-/&gt;</span>Thumbnail<span class="sy0">-&gt;</span><span class="me1">Url</span><span class="sy0">.</span> <span class="st0">&#39;&quot;&gt;&lt;/a&gt;&lt;/li&gt;&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">echo</span><span class="br0">&#40;</span><span class="st0">&quot;&lt;/ul&gt;&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>Of course there is the old RSS-option, which doesnt require an appid but also falls under the api 2.0 tos, and a soap option.</p>
<p>other sources :<br />
There is a <a href="http://bingapiphp.codeplex.com/" rel="nofollow">bing api php class</a> made over at <a href="http://routecafe.com/posts/bing-api-php-v11-release.moccha">routecafe</a>, and a <a href="http://einaros.blogspot.com/2009/06/hovering-bing-search-using-jquery.html" rel="nofollow">jquery bing plugin using json</a> over at Einar Otto Stangvik&#8217;s blog. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.juust.org/index.php/bing-api-with-php-simplexml/2009/09/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>about the trackback thing</title>
		<link>http://www.juust.org/index.php/about-the-trackback-thing/2009/04/</link>
		<comments>http://www.juust.org/index.php/about-the-trackback-thing/2009/04/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 03:43:49 +0000</pubDate>
		<dc:creator>juust</dc:creator>
				<category><![CDATA[seo]]></category>
		<category><![CDATA[trends]]></category>

		<guid isPermaLink="false">http://www.juust.org/index.php/about-the-trackback-thing/2009/04/</guid>
		<description><![CDATA[The question about the trends script with trackbacks was wether a few hundred backlinks was worth the trouble, and it wasn&#8217;t. I wrote a second routine to grab the most common significant words from excerpts, and do a second search to grab better results and up to five trackbacks per page. 
So I&#160;put that online, [...]]]></description>
			<content:encoded><![CDATA[<p>The question about the trends script with trackbacks was wether a few hundred backlinks was worth the trouble, and it wasn&#8217;t. I wrote a second routine to grab the most common significant words from excerpts, and do a second search to grab better results and up to five trackbacks per page. </p>
<p>So I&nbsp;put that online, it grabbed 4000 backlinks in an hour and overloaded the host server. </p>
<p>Baidu, radian6 and google had stepped up indexing after I added sitewide tags and that didnt show up in analytics, the site got the trackback validations and crawlers and the server went haywire. It is a shared host, the resources are too limited to run that kind site on. I&nbsp;put it on hold till I&nbsp;find a solution for the hosting, </p>
<p>Google of course penalised the site with PR0 and dropped the domain from the serp on its main keywords, but in Yahoo it ranks about 20 out of 360 million result pages and in MSN&nbsp;it ranks no 1. I was thinking about adding a translator plugin and see if I can get some traffic from Baidu.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.juust.org/index.php/about-the-trackback-thing/2009/04/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RedHat Seo : scraper auto-blogging</title>
		<link>http://www.juust.org/index.php/redhat-seo-christmas-edition/2008/12/</link>
		<comments>http://www.juust.org/index.php/redhat-seo-christmas-edition/2008/12/#comments</comments>
		<pubDate>Fri, 26 Dec 2008 18:07:01 +0000</pubDate>
		<dc:creator>juust</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[seo tips and tricks]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[xml-rpc]]></category>
		<category><![CDATA[scrape]]></category>

		<guid isPermaLink="false">http://www.juust.org/?p=270</guid>
		<description><![CDATA[Just give us your endpoint and we&#8217;ll take it from there, sparky!
I was going to make one of these tools to scrape google and conjur a full blog out of nowhere, as Christmas special, RedHat Seo. The rough sketch has arrived , far from perfect, but it does produce a blog and don&#8217;t even look [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Just give us your endpoint and we&#8217;ll take it from there, sparky!</p></blockquote>
<p>I was going to make one of these tools to scrape google and conjur a full blog out of nowhere, as Christmas special, RedHat Seo. The rough sketch has arrived , far from perfect, but it does produce a blog and don&#8217;t even look too shabby. I scraped a <a href="" rel="nofollow" target="_blank">small batch</a> of posts off of blogs, keeping the links intact and adding a tribute links. I hope they will pardon me for it. </p>
<h3>structure</h3>
<p>I use three main classes, </p>
<table>
<tbody>
<tr>
<td>BlogMaker    </td>
<td>     the application</td>
</tr>
<tr>
<td>Target         </td>
<td>     the blogs you aim for</td>
</tr>
<tr>
<td>WPContent   </td>
<td>     the scraped goodies</td>
</tr>
</tbody>
</table>
<p>&#8230;and two support classes</p>
<table>
<tbody>
<tr>
<td>SerpResult    </td>
<td>    scraped urls</td>
</tr>
<tr>
<td>Custom_RPC   </td>
<td>    a simple rpc-poster</td>
</tr>
</tbody>
</table>
<p>Target blogs have three texts, </p>
<table>
<tbody>
<tr>
<td>file</td>
<td>contents</td>
<td>maintenance</td>
</tr>
<tr>
<td>blog categories</td>
<td>category you post under</td>
<td>manual</td>
</tr>
<tr>
<td>blog tags</td>
<td> tags you list on the blog</td>
<td>manual</td>
</tr>
<tr>
<td>blog urls</td>
<td> urls already used for the blog</td>
<td>system</td>
</tr>
</tbody>
</table>
<h3>routine</h3>
<p>The BlogMaker class grabs a result list (up to 1000 urls per phrase) from Google, extracts the urls and stores them in SerpResult,  scrapes the urls and extracts the <strong>entry</strong> divs, stores div-entries in the WPContent class (that has some basic functions to sanitize the text), and uses the BlogTarget-definitions to post it up blogs with xml-rpc.</p>
<h3>usage</h3>
<p>My highlighter tends to mess up text with div markers in it, copying off the blog may not work,<br />
the full text source (about 500 lines) is <a href="http://serp.trismegistos.net/fastblog.txt" target="_blank" rel="nofollow">overhere</a>. Underneath I&#8217;ll list the main program loop :</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//make main instance</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$Blog</span> <span class="sy0">=</span> <span class="kw2">new</span> BlogMaker<span class="br0">&#40;</span><span class="st0">&quot;keyword&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//define a target blog, you can define multiple blogs and refer with code</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//then add rpc-url, password and user</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//and for every target blog three text-files </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$T</span><span class="sy0">=</span><span class="re1">$Blog</span><span class="sy0">-&gt;</span><span class="me1">AddTarget</span><span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="st0">&#39;blogcode&#39;</span><span class="sy0">,</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="st0">&#39;http://my.blog.com/xmlrpc.php&#39;</span><span class="sy0">,</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="st0">&#39;password&#39;</span><span class="sy0">,</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="st0">&#39;user&#39;</span><span class="sy0">,</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="st0">&#39;keyword.categories.txt&#39;</span><span class="sy0">,</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="st0">&#39;keyword.tags.txt&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="st0">&#39;keyword.urls.txt&#39;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//read the tags, cats and url text files stored on the server </span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//all retrieved urls are tested, if the target blog already has that</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//scraped url, it is discarded.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$T</span><span class="sy0">-&gt;</span><span class="me1">CSV_GetTags</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$T</span><span class="sy0">-&gt;</span><span class="me1">List_GetCats</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$T</span><span class="sy0">-&gt;</span><span class="me1">ReadURL</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//grab the google result list</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//use params (pages, keywords) to specify search</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$Blog</span><span class="sy0">-&gt;</span><span class="me1">GoogleResults</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$a</span><span class="sy0">=</span><span class="nu0">0</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re1">$Blog</span><span class="sy0">-&gt;</span><span class="me1">Results</span> <span class="kw1">as</span> <span class="re1">$BlogUrl</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">$a</span><span class="sy0">++;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">echo</span> <span class="re1">$BlogUrl</span><span class="sy0">-&gt;</span><span class="me1">url</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//see if the url isnt used yet</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re1">$T</span><span class="sy0">-&gt;</span><span class="me1">checkURL</span><span class="br0">&#40;</span><span class="kw3">trim</span><span class="br0">&#40;</span><span class="re1">$BlogUrl</span><span class="sy0">-&gt;</span><span class="me1">url</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">!=</span><span class="kw2">true</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">echo</span> <span class="st0">&#39;&#8230;checking &#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">flush</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//if not used, get the source</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="re1">$BlogUrl</span><span class="sy0">-&gt;</span><span class="me1">scrape</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//check for divs marked &quot;entry&quot;, if they arent there, check &quot;post&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//some blogs use other indications for the content</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//but entry and post cover 40%</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="re1">$entries</span> <span class="sy0">=</span> <span class="re1">$BlogUrl</span><span class="sy0">-&gt;</span><span class="me1">get_entries</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">count</span><span class="br0">&#40;</span><span class="re1">$entries</span><span class="br0">&#41;</span><span class="sy0">&amp;</span>lt<span class="sy0">;</span><span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&#39;no entries&#8230;&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">flush</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">$entries</span> <span class="sy0">=</span> <span class="re1">$BlogUrl</span><span class="sy0">-&gt;</span><span class="me1">get_posts</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">count</span><span class="br0">&#40;</span><span class="re1">$entries</span><span class="br0">&#41;</span><span class="sy0">&amp;</span>lt<span class="sy0">;</span><span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&#39;no posts either&#8230;&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//if no entry-post div, mark url as done</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="re1">$T</span><span class="sy0">-&gt;</span><span class="me1">RegisterURL</span><span class="br0">&#40;</span><span class="re1">$BlogUrl</span><span class="sy0">-&gt;</span><span class="me1">url</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="re1">$ct</span><span class="sy0">=</span><span class="nu0">0</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re1">$BlogUrl</span><span class="sy0">-&gt;</span><span class="me1">WpContentPieces</span> <span class="kw1">as</span> <span class="re1">$WpContent</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//in the get_entries/get_post function the fragments are stored</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//as wpcontent</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">$ct</span><span class="sy0">++;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re1">$WpContent</span><span class="sy0">-&gt;</span><span class="me1">judge</span><span class="br0">&#40;</span><span class="nu0">2000</span><span class="sy0">,</span> <span class="nu0">200</span><span class="sy0">,</span> <span class="nu0">5</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="re1">$WpContent</span><span class="sy0">-&gt;</span><span class="me1">tribute</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp;<span class="co1">//add tribute link</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="re1">$T</span><span class="sy0">-&gt;</span><span class="me1">settags</span><span class="br0">&#40;</span><span class="re1">$WpContent</span><span class="sy0">-&gt;</span><span class="me1">divcontent</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">//add tags</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="re1">$T</span><span class="sy0">-&gt;</span><span class="me1">postCustomRPC</span><span class="br0">&#40;</span><span class="re1">$WpContent</span><span class="sy0">-&gt;</span><span class="me1">title</span><span class="sy0">,</span> <span class="re1">$WpContent</span><span class="sy0">-&gt;</span><span class="me1">divcontent</span><span class="sy0">,</span> <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">//1=publish, 0=draft</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="re1">$T</span><span class="sy0">-&gt;</span><span class="me1">RegisterURL</span><span class="br0">&#40;</span><span class="re1">$WpContent</span><span class="sy0">-&gt;</span><span class="me1">url</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp;<span class="co1">//register use of url</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">usleep</span><span class="br0">&#40;</span><span class="nu0">20000000</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp;<span class="co1">//20 seconds break, for sitemapping</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<h3>notes</h3>
<ul>
<li>xml-rpc needs to be activated explicitly on the wordpress dashboard under settings/writing.</li>
<li>categories must be present in the blog</li>
<li>url file must be writeable by the server (777)</li>
</ul>
<p>It seems wordpress builds the sitemap as background process, the standard google xml sitemap plugin wil attempt to build in the cache (takes anywhere between 2 and 10 seconds), and apart from building a sitemap the posts also get pinged around. Giving the install 10 to 20 seconds between posts allows for all the hooked in functions to be completed.</p>
<h3>period</h3>
<p>That&#8217;s about all,<br />
consider it gpl, I added some comments in the source but I will not develop this any further. A mysql backed blogfarm tool (euphemistically called &#8216;publishing tool&#8217;) is more interesting, besides, I am off to the wharves to do some painting.</p>
<p>if you use it, send some feedback,<br />
merry christmas dogheads</p>
]]></content:encoded>
			<wfw:commentRss>http://www.juust.org/index.php/redhat-seo-christmas-edition/2008/12/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>google trends II</title>
		<link>http://www.juust.org/index.php/google-trends-ii/2008/12/</link>
		<comments>http://www.juust.org/index.php/google-trends-ii/2008/12/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 01:50:38 +0000</pubDate>
		<dc:creator>juust</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[trends]]></category>

		<guid isPermaLink="false">http://www.juust.org/?p=267</guid>
		<description><![CDATA[I wanted to reply to a question elsewhere on the site, but a &#8216;comment&#8217; box isn&#8217;t fit for it so I&#8217;ll put the reply here. The question was about creating &#8217;search engine friendly&#8217; descriptive URL&#8217;s based on  keywords from the Google Trends atom feed, listing pages a graph of the trend.
I hacked a quick [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to reply to a question elsewhere on the site, but a &#8216;comment&#8217; box isn&#8217;t fit for it so I&#8217;ll put the reply here. The <a href="http://www.juust.org/index.php/parsing-the-google-trends-atom-feed/2008/11/#comments" rel="nofollow">question</a> was about creating &#8217;search engine friendly&#8217; descriptive URL&#8217;s based on  keywords from the Google Trends atom feed, listing pages a graph of the trend.</p>
<p>I hacked a quick example together on a subdomain over at <a href="http://trends.trismegistos.net/" rel="nofollow" target="_blank">trends.trismegistos.net</a>, just to be sure it works. </p>
<p>You can get a site to list http://domain.com/trend_title.html type url&#8217;s by using <a href="http://www.the-art-of-web.com/system/rewrite/1/" rel="nofollow" title="url rewrite examples">mod_rewrite</a>, an apache module. </p>
<p>In the server directory of the application you can <a href="http://www.yourhtmlsource.com/sitemanagement/urlrewriting.html" rel="nofollow">use an .htaccess file to set rules</a> for file access in these folders. When the server gets request from browsers or servers it applies any rewriting rules you define in .htaccess to these requests.</p>
<p>I tried this one :</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>ifmodule mod_rewrite<span class="sy0">.</span>c<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;RewriteEngine On</div>
</li>
<li class="li1">
<div class="de1">&nbsp;RewriteCond <span class="sy0">%</span><span class="br0">&#123;</span>REQUEST_FILENAME<span class="br0">&#125;</span> <span class="sy0">!-</span>f</div>
</li>
<li class="li1">
<div class="de1">&nbsp;RewriteCond <span class="sy0">%</span><span class="br0">&#123;</span>REQUEST_FILENAME<span class="br0">&#125;</span> <span class="sy0">!-</span>d</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; RewriteRule ^<span class="br0">&#40;</span><span class="sy0">.*</span><span class="br0">&#41;</span><span class="sy0">.</span>html <span class="sy0">/</span>trendinfo<span class="sy0">.</span>php?title<span class="sy0">=</span>$<span class="nu0">1</span> </div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">&lt;/</span>ifmodule<span class="sy0">&gt;</span></div>
</li>
</ol>
</div>
<p><strong>RewriteEngine On</strong><br />
sets the rewrite mechanism on</p>
<p><strong>RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d</strong><br />
tell the apache server that rewriteconditions apply to file-requests that are not an existing file (F) or directory (D). If the requested filename is anywhere in the servers file table, the server dishes out that file, otherwise it will try to apply a RewriteRule. Applying the rule generates a new request, if that returns anything, the server dishes that out, otherwise it returns an htpp-404 &#8216;file not found&#8217;.</p>
<p>The actual url rewrite rule is :<br />
<strong>RewriteRule ^(.*).html /trendinfo.php?title=$1 </strong><br />
which means : </p>
<ul>
<li>if any filename is requested that satisfies the mask <strong>^(.*).html</strong> then</li>
</ul>
<ul>
<li>take everything before .html</li>
<li>add that as variable $1 to trendinfo.php?title=$1</li>
<li>see if it sticks</li>
</ul>
<p>If the browser requests <em>http://domain.com/bob+bowersox.html</em>, the server will assert it is not a file or directory on the server, and test the available rules. When it notices it the requested file ends with .html, it applies the rewrite rule and tries to access <em>http://domain.com/trendinfo.php?title=bob+bowersox</em>. </p>
<p>A browsing user does not notice a thing.</p>
<p>In <em>trendinfo.php</em> I wrote some code to handle the &#8216;new&#8217; request :</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="kw3">isset</span><span class="br0">&#40;</span><span class="re1">$_REQUEST</span><span class="br0">&#91;</span><span class="st0">&#39;title&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//if there is no $1, added as title, fake a 404 &quot;file not found&quot; message </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&#39;the emptiness&#8230;&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//get the title from the request</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">$mytitle</span><span class="sy0">=</span><span class="kw3">htmlentities</span><span class="br0">&#40;</span><span class="re1">$_REQUEST</span><span class="br0">&#91;</span><span class="st0">&#39;title&#39;</span><span class="br0">&#93;</span><span class="sy0">,</span> ENT_QUOTES<span class="sy0">,</span> <span class="st0">&quot;UTF-8&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//put the google trends graph url together</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">$graphurl</span> <span class="sy0">=</span> <span class="st0">&#39;http://www.google.com/trends/viz?hl=&amp;q=&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">$graphurl</span> <span class="sy0">.=</span> <span class="kw3">urlencode</span><span class="br0">&#40;</span><span class="re1">$mytitle</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">$graphurl</span> <span class="sy0">.=</span> <span class="st0">&#39;&amp;date=&#39;</span><span class="sy0">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="co1">//leave date blank to get the current graph</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">$graphurl</span> <span class="sy0">.=</span> <span class="st0">&#39;&amp;graph=hot_img&amp;sa=X&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;&lt;img class=hotGraph width=280 height=190 src=&#39;$graphurl&#39;/&gt;&quot;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>&#8230;that outputs the Google trend graph on the url http://domain.com/bob+bowersox.html</p>
<p>I zipped the trends.trismegistos.net program files, but that might be a bit over the top, the <a href="http://trends.trismegistos.net/trends.rar" rel="nofollow">download file</a> contains a class that relies on a mysql table being filled every hour with new trends (by cron.php on an apache cron-job), parsing and storing the atom feed of google trends, and listing it as a cross-table in index.php spanning the past 24 hours.</p>
<p>You can also put this in index.php :</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">$feed</span> <span class="sy0">=</span> simplexml_load_file<span class="br0">&#40;</span><span class="st0">&#39;http://www.google.com/trends/hottrends/atom/hourly&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">$children</span> <span class="sy0">=</span> &nbsp;<span class="re1">$feed</span><span class="sy0">-&gt;</span><span class="me1">children</span><span class="br0">&#40;</span><span class="st0">&#39;http://www.w3.org/2005/Atom&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">$parts</span> <span class="sy0">=</span> <span class="re1">$children</span><span class="sy0">-&gt;</span><span class="me1">entry</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re1">$parts</span> <span class="kw1">as</span> <span class="re1">$entry</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="re1">$details</span> <span class="sy0">=</span> <span class="re1">$entry</span><span class="sy0">-&gt;</span><span class="me1">children</span><span class="br0">&#40;</span><span class="st0">&#39;http://www.w3.org/2005/Atom&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="re1">$dom</span> <span class="sy0">=</span> <span class="kw2">new</span> domDocument<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="re1">$html</span><span class="sy0">=</span><span class="re1">$details</span><span class="sy0">-&gt;</span><span class="me1">content</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="sy0">@</span><span class="re1">$dom</span><span class="sy0">-&gt;</span><span class="me1">loadHTML</span><span class="br0">&#40;</span><span class="re1">$html</span><span class="br0">&#41;</span><span class="sy0">;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="re1">$anchors</span> <span class="sy0">=</span> <span class="re1">$dom</span><span class="sy0">-&gt;</span><span class="me1">getElementsByTagName</span><span class="br0">&#40;</span><span class="st0">&#39;a&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re1">$anchors</span> <span class="kw1">as</span> <span class="re1">$anchor</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="re1">$url</span> <span class="sy0">=</span> <span class="re1">$anchor</span><span class="sy0">-&gt;</span><span class="me1">getAttribute</span><span class="br0">&#40;</span><span class="st0">&#39;href&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="re1">$urltext</span> <span class="sy0">=</span> <span class="re1">$anchor</span><span class="sy0">-&gt;</span><span class="me1">nodeValue</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw3">echo</span> <span class="st0">&#39;&lt;a href=&quot;&#39;</span><span class="sy0">.</span><span class="kw3">urlencode</span><span class="br0">&#40;</span><span class="re1">$urltext</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st0">&#39;.html&quot; target=&quot;_blank&quot;&gt;&#39;</span><span class="sy0">.</span><span class="re1">$urltext</span><span class="sy0">.</span><span class="st0">&#39;&lt;/a&gt; &#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">unset</span><span class="br0">&#40;</span><span class="re1">$dom</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">unset</span><span class="br0">&#40;</span><span class="re1">$anchors</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">unset</span><span class="br0">&#40;</span><span class="re1">$parts</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">unset</span><span class="br0">&#40;</span><span class="re1">$feed</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>That lists the current 100 google trends with a link. If you use the .htaccess rewrite rules, the server reroutes all the links to <em>trendinfo.php</em> with descriptive urls.</p>
<p>I hope that helps.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.juust.org/index.php/google-trends-ii/2008/12/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
