<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Alex Polski Blog</title>
	
	<link>http://alexpolski.com</link>
	<description>Development as lifestyle</description>
	<lastBuildDate>Mon, 30 Mar 2009 16:27:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/AlexPolskisBlog" /><feedburner:info uri="alexpolskisblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Image drop shadow has been updated</title>
		<link>http://feedproxy.google.com/~r/AlexPolskisBlog/~3/ToyR41MgSw0/</link>
		<comments>http://alexpolski.com/2009/03/30/image-drop-shadow-has-been-updated/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 16:27:36 +0000</pubDate>
		<dc:creator>Alex Polski</dc:creator>
				<category><![CDATA[Free downloads]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[image drop shadow]]></category>
		<category><![CDATA[wordpress plugin]]></category>

		<guid isPermaLink="false">http://alexpolski.com/?p=196</guid>
		<description><![CDATA[I&#8217;ve noticed that Image drop shadow wordpress plugin did not work properly with the large images. I&#8217;ve fixed this bug for images up to 800&#215;600 pixels size and I&#8217;ve added a donation url. So if you like this plugin you can make a donation to it.
Download Image Drop Shadow 1.1 now (zip, 26 kb)
Donate to [...]]]></description>
			<content:encoded><![CDATA[<div class="ids_container" style="overflow: hidden;"><p>I&#8217;ve noticed that <a href="http://alexpolski.com/projects/image-drop-shadow-wordpress-plugin/">Image drop shadow wordpress plugin</a> did not work properly with the large images. I&#8217;ve fixed this bug for images up to 800&#215;600 pixels size and I&#8217;ve added a donation url. So if you like this plugin you can <a href="https://www.plimus.com/jsp/buynow.jsp?contractId=2303130">make a donation</a> to it.</p>
<p><a href="http://downloads.wordpress.org/plugin/image-drop-shadow.zip">Download Image Drop Shadow 1.1 now (zip, 26 kb)</a></p>
<p><a href="https://www.plimus.com/jsp/buynow.jsp?contractId=2303130">Donate to this plugin</a><br />
<h3>Related posts</h3>
<ul class="related_post">
<li><a href="http://alexpolski.com/2008/07/11/image-drop-shadow-wordpress-plugin/" title="Image Drop Shadow plugin for wordpress">Image Drop Shadow plugin for wordpress</a></li>
<li><a href="http://alexpolski.com/2008/07/10/all-in-one-seo-pack-runphp-short-meta-descriptions/" title="All in One SEO Pack + runPHP = short meta descriptions">All in One SEO Pack + runPHP = short meta descriptions</a></li>
</ul>
</div>
<p><a href="http://feedads.g.doubleclick.net/~a/eewgpVKEiZto4y_gaNa_gmPzi7Y/0/da"><img src="http://feedads.g.doubleclick.net/~a/eewgpVKEiZto4y_gaNa_gmPzi7Y/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/eewgpVKEiZto4y_gaNa_gmPzi7Y/1/da"><img src="http://feedads.g.doubleclick.net/~a/eewgpVKEiZto4y_gaNa_gmPzi7Y/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AlexPolskisBlog?a=ToyR41MgSw0:n7Ir8b66i2c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AlexPolskisBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AlexPolskisBlog?a=ToyR41MgSw0:n7Ir8b66i2c:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/AlexPolskisBlog?i=ToyR41MgSw0:n7Ir8b66i2c:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AlexPolskisBlog?a=ToyR41MgSw0:n7Ir8b66i2c:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AlexPolskisBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AlexPolskisBlog?a=ToyR41MgSw0:n7Ir8b66i2c:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/AlexPolskisBlog?i=ToyR41MgSw0:n7Ir8b66i2c:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AlexPolskisBlog/~4/ToyR41MgSw0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://alexpolski.com/2009/03/30/image-drop-shadow-has-been-updated/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://alexpolski.com/2009/03/30/image-drop-shadow-has-been-updated/</feedburner:origLink></item>
		<item>
		<title>How to merge multiple feeds to one feed</title>
		<link>http://feedproxy.google.com/~r/AlexPolskisBlog/~3/NATu-BZGV70/</link>
		<comments>http://alexpolski.com/2009/03/25/how-to-merge-multiple-feeds-to-one-feed/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 00:17:06 +0000</pubDate>
		<dc:creator>Alex Polski</dc:creator>
				<category><![CDATA[Yahoo Pipes]]></category>
		<category><![CDATA[feed]]></category>

		<guid isPermaLink="false">http://alexpolski.com/?p=179</guid>
		<description><![CDATA[If you have a number of feeds from multiple sources (blogs, news sites, etc.) and want to merge them to one feed I have ready solution for you. It can be done very easy and quickly with Yahoo Pipes. Just create &#8220;Fetch Feed&#8221; module in new just created pipe and add your feeds to it [...]]]></description>
			<content:encoded><![CDATA[<div class="ids_container" style="overflow: hidden;"><p>If you have a number of feeds from multiple sources (blogs, news sites, etc.) and want to merge them to one feed I have ready solution for you. It can be done very easy and quickly with <a href="http://pipes.yahoo.com/pipes/">Yahoo Pipes</a>. Just create &#8220;Fetch Feed&#8221; module in new just created pipe and add your feeds to it like on the image below.</p>
<p><img src="http://alexpolski.com/wp-content/uploads/2009/03/yahoo_pipes_1.png" alt="Merging multiple feeds to one feed with Yahoo Pipes" title="Merging multiple feeds to one feed with Yahoo Pipes" width="299" height="244" /></p>
<p>If you have a lot of feeds you may separate them into a few &#8220;Fetch Feed&#8221; modules and then use &#8220;Union&#8221; module like on the image below.</p>
<p><img src="http://alexpolski.com/wp-content/uploads/2009/03/yahoo_pipes_2.png" alt="Merging a lot of feeds into one feed with Yahoo Pipes" title="Merging a lot of feeds into one feed with Yahoo Pipes" width="613" height="394" /></p>
<p>Finally you can sort the items of result feed by publish date using &#8220;Sort&#8221; module like on the image below.</p>
<p><img src="http://alexpolski.com/wp-content/uploads/2009/03/yahoo_pipes_3.png" alt="Merging a lot of feeds to one feed and sorting by items publish date with Yahoo Pipes" title="Merging a lot of feeds to one feed and sorting by items publish date with Yahoo Pipes" width="623" height="513" /></p>
<p>As a result we got the feed containing the items of multiple feeds and the items are sorted by publish date. You can find this pipe <a href="http://pipes.yahoo.com/pipes/pipe.info?_id=GDjCdJgZ3hGeof6ePm7D0g">here</a>.<br />
<h3>Most Commented Posts</h3>
<ul class="related_post">
<li><a href="http://alexpolski.com/projects/pagerank-spider/" title="PageRank Spider">PageRank Spider</a></li>
<li><a href="http://alexpolski.com/2008/04/18/finally-mass-pagerank-checker-tool/" title="Finally, Mass PageRank Checker tool!">Finally, Mass PageRank Checker tool!</a></li>
<li><a href="http://alexpolski.com/projects/mass-pagerank-checker/" title="Mass PageRank Checker">Mass PageRank Checker</a></li>
<li><a href="http://alexpolski.com/2009/02/03/php-adsense-monitor-update/" title="PHP Adsense monitor update">PHP Adsense monitor update</a></li>
<li><a href="http://alexpolski.com/2008/05/06/mass-pagerank-checker-updated/" title="Mass PageRank Checker updated!">Mass PageRank Checker updated!</a></li>
</ul>
</div>
<p><a href="http://feedads.g.doubleclick.net/~a/wjpymSk9qUB8CPv6PkvCnPJyjE0/0/da"><img src="http://feedads.g.doubleclick.net/~a/wjpymSk9qUB8CPv6PkvCnPJyjE0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/wjpymSk9qUB8CPv6PkvCnPJyjE0/1/da"><img src="http://feedads.g.doubleclick.net/~a/wjpymSk9qUB8CPv6PkvCnPJyjE0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AlexPolskisBlog?a=NATu-BZGV70:k2x8Yb1UNeo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AlexPolskisBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AlexPolskisBlog?a=NATu-BZGV70:k2x8Yb1UNeo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/AlexPolskisBlog?i=NATu-BZGV70:k2x8Yb1UNeo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AlexPolskisBlog?a=NATu-BZGV70:k2x8Yb1UNeo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AlexPolskisBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AlexPolskisBlog?a=NATu-BZGV70:k2x8Yb1UNeo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/AlexPolskisBlog?i=NATu-BZGV70:k2x8Yb1UNeo:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AlexPolskisBlog/~4/NATu-BZGV70" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://alexpolski.com/2009/03/25/how-to-merge-multiple-feeds-to-one-feed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://alexpolski.com/2009/03/25/how-to-merge-multiple-feeds-to-one-feed/</feedburner:origLink></item>
		<item>
		<title>PHP AdSense account library news and stats</title>
		<link>http://feedproxy.google.com/~r/AlexPolskisBlog/~3/ZYt2ds0-Sr4/</link>
		<comments>http://alexpolski.com/2009/03/19/php-adsense-account-library-news-and-stats/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 12:26:38 +0000</pubDate>
		<dc:creator>Alex Polski</dc:creator>
				<category><![CDATA[Adsense]]></category>
		<category><![CDATA[google code]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://alexpolski.com/?p=176</guid>
		<description><![CDATA[As you know 1.5 month ago I&#8217;ve started PHP AdSense account library project. The current version of the library is 0.2, which includes new features and improvements. Here is the small stats for the project:

291 Visits
127 Visitors
86 downloads

Visitors by country:

Russia
Ukraine
United States
Germany
Czech Republic
India
United Kingdom
Denmark
France

3 issues were posted and 1 bug was fixed thanks to one of [...]]]></description>
			<content:encoded><![CDATA[<div class="ids_container" style="overflow: hidden;"><p>As you know 1.5 month ago I&#8217;ve started <a href="http://code.google.com/p/php-adsense-account-library/">PHP AdSense account library</a> project. The current version of the library is 0.2, which includes new features and improvements. Here is the small stats for the project:</p>
<ul>
<li>291 Visits</li>
<li>127 Visitors</li>
<li>86 downloads</li>
</ul>
<p>Visitors by country:</p>
<ol>
<li>Russia</li>
<li>Ukraine</li>
<li>United States</li>
<li>Germany</li>
<li>Czech Republic</li>
<li>India</li>
<li>United Kingdom</li>
<li>Denmark</li>
<li>France</li>
</ol>
<p>3 issues were posted and 1 bug was fixed thanks to one of the users.</p>
<p>I think the project is on the right way and it&#8217;s useful for people.<br />
<h3>Related posts</h3>
<ul class="related_post">
<li><a href="http://alexpolski.com/2008/11/09/php-account-adsense-monitor/" title="PHP account adsense monitor">PHP account adsense monitor</a></li>
<li><a href="http://alexpolski.com/2008/07/24/backing-up-mysql-tables-under-extremal-conditions/" title="Backing up MySQL tables under extremal conditions">Backing up MySQL tables under extremal conditions</a></li>
<li><a href="http://alexpolski.com/2008/07/14/add-perl-and-php-search-engine-plugins-to-your-browser/" title="Add Perl and PHP search engine plugins to your browser">Add Perl and PHP search engine plugins to your browser</a></li>
<li><a href="http://alexpolski.com/2008/04/27/how-old-is-your-site/" title="How old is your site?">How old is your site?</a></li>
<li><a href="http://alexpolski.com/2008/04/15/how-to-check-google-pagerank-in-php/" title="How to check Google PageRank in PHP">How to check Google PageRank in PHP</a></li>
</ul>
</div>
<p><a href="http://feedads.g.doubleclick.net/~a/x8BP8jSL1-H_WD2Z-Hzl4m5cEbQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/x8BP8jSL1-H_WD2Z-Hzl4m5cEbQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/x8BP8jSL1-H_WD2Z-Hzl4m5cEbQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/x8BP8jSL1-H_WD2Z-Hzl4m5cEbQ/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AlexPolskisBlog?a=ZYt2ds0-Sr4:VVLpqapAcMw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AlexPolskisBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AlexPolskisBlog?a=ZYt2ds0-Sr4:VVLpqapAcMw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/AlexPolskisBlog?i=ZYt2ds0-Sr4:VVLpqapAcMw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AlexPolskisBlog?a=ZYt2ds0-Sr4:VVLpqapAcMw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AlexPolskisBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AlexPolskisBlog?a=ZYt2ds0-Sr4:VVLpqapAcMw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/AlexPolskisBlog?i=ZYt2ds0-Sr4:VVLpqapAcMw:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AlexPolskisBlog/~4/ZYt2ds0-Sr4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://alexpolski.com/2009/03/19/php-adsense-account-library-news-and-stats/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://alexpolski.com/2009/03/19/php-adsense-account-library-news-and-stats/</feedburner:origLink></item>
		<item>
		<title>PHP AdSense account library on Google Code</title>
		<link>http://feedproxy.google.com/~r/AlexPolskisBlog/~3/3oSr_De7qJQ/</link>
		<comments>http://alexpolski.com/2009/02/05/php-adsense-account-library-on-google-code/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 20:26:55 +0000</pubDate>
		<dc:creator>Alex Polski</dc:creator>
				<category><![CDATA[Adsense]]></category>

		<guid isPermaLink="false">http://alexpolski.com/?p=141</guid>
		<description><![CDATA[I&#8217;ve started PHP AdSense account library project on Google Code. There are the sources from my previous blog post now which you can download as the version 0.1. I&#8217;ve choose to release the library under GNU GPL 3 license.
I&#8217;m planning to continue the development of this library, add new features, write the tutorial and you [...]]]></description>
			<content:encoded><![CDATA[<div class="ids_container" style="overflow: hidden;"><p>I&#8217;ve started <a href="http://code.google.com/p/php-adsense-account-library/">PHP AdSense account library</a> project on <a href="http://code.google.com/">Google Code</a>. There are the sources from my <a href="http://alexpolski.com/2009/02/03/php-adsense-monitor-update/">previous blog post</a> now which you can download as the <a href="http://php-adsense-account-library.googlecode.com/files/php-adsense-account-library-0.1.tgz">version 0.1</a>. I&#8217;ve choose to release the library under GNU GPL 3 license.</p>
<p>I&#8217;m planning to continue the development of this library, add new features, write the tutorial and you can help me to do it :)</p>
<p>The following tasks are in my nearest plans:</p>
<ul>
<li>Write the tutorial and user manual</li>
<li>Add AdSense for Search support</li>
<li>Develop flexible methods for report retrieving</li>
</ul>
<p><a href="http://code.google.com/p/php-adsense-account-library/">Visit PHP AdSense account library project</a><br />
<h3>Most Commented Posts</h3>
<ul class="related_post">
<li><a href="http://alexpolski.com/projects/pagerank-spider/" title="PageRank Spider">PageRank Spider</a></li>
<li><a href="http://alexpolski.com/2008/04/18/finally-mass-pagerank-checker-tool/" title="Finally, Mass PageRank Checker tool!">Finally, Mass PageRank Checker tool!</a></li>
<li><a href="http://alexpolski.com/projects/mass-pagerank-checker/" title="Mass PageRank Checker">Mass PageRank Checker</a></li>
<li><a href="http://alexpolski.com/2009/02/03/php-adsense-monitor-update/" title="PHP Adsense monitor update">PHP Adsense monitor update</a></li>
<li><a href="http://alexpolski.com/2008/05/06/mass-pagerank-checker-updated/" title="Mass PageRank Checker updated!">Mass PageRank Checker updated!</a></li>
</ul>
</div>
<p><a href="http://feedads.g.doubleclick.net/~a/QomHrmZwKgK72NvNgKowzqejC_I/0/da"><img src="http://feedads.g.doubleclick.net/~a/QomHrmZwKgK72NvNgKowzqejC_I/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/QomHrmZwKgK72NvNgKowzqejC_I/1/da"><img src="http://feedads.g.doubleclick.net/~a/QomHrmZwKgK72NvNgKowzqejC_I/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=EggvLTCW"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=kkuuF1Qg"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?i=kkuuF1Qg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=BRnzp35V"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=9o6AFhvD"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?i=9o6AFhvD" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AlexPolskisBlog/~4/3oSr_De7qJQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://alexpolski.com/2009/02/05/php-adsense-account-library-on-google-code/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://alexpolski.com/2009/02/05/php-adsense-account-library-on-google-code/</feedburner:origLink></item>
		<item>
		<title>PHP Adsense monitor update</title>
		<link>http://feedproxy.google.com/~r/AlexPolskisBlog/~3/Nno57DdwlJM/</link>
		<comments>http://alexpolski.com/2009/02/03/php-adsense-monitor-update/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 19:35:51 +0000</pubDate>
		<dc:creator>Alex Polski</dc:creator>
				<category><![CDATA[Adsense]]></category>

		<guid isPermaLink="false">http://alexpolski.com/?p=135</guid>
		<description><![CDATA[One of my readers (Thanks Herick!) has noticed that Adsense monitor became unable to login to adsense account. Google has made small changes in authorization, but I have fixed the script and now it works perfect.
And one thing that I have not mentioned in previous post &#8211; you must create &#8216;tmp&#8217; folder in the script&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<div class="ids_container" style="overflow: hidden;"><p>One of my readers (Thanks Herick!) has noticed that <a href="http://alexpolski.com/2008/11/09/php-account-adsense-monitor/">Adsense monitor</a> became unable to login to adsense account. Google has made small changes in authorization, but I have fixed the script and now it works perfect.</p>
<p>And one thing that I have not mentioned in previous post &#8211; you must create &#8216;tmp&#8217; folder in the script&#8217;s folder and add write permissions to it. The script will use this folder for temporary cookies files.</p>
<p><a href="http://alexpolski.com/wp-content/uploads/2009/02/adsense.php.txt">Download Adsense monitor script</a><br />
<h3>Most Commented Posts</h3>
<ul class="related_post">
<li><a href="http://alexpolski.com/projects/pagerank-spider/" title="PageRank Spider">PageRank Spider</a></li>
<li><a href="http://alexpolski.com/2008/04/18/finally-mass-pagerank-checker-tool/" title="Finally, Mass PageRank Checker tool!">Finally, Mass PageRank Checker tool!</a></li>
<li><a href="http://alexpolski.com/projects/mass-pagerank-checker/" title="Mass PageRank Checker">Mass PageRank Checker</a></li>
<li><a href="http://alexpolski.com/2009/02/03/php-adsense-monitor-update/" title="PHP Adsense monitor update">PHP Adsense monitor update</a></li>
<li><a href="http://alexpolski.com/2008/05/06/mass-pagerank-checker-updated/" title="Mass PageRank Checker updated!">Mass PageRank Checker updated!</a></li>
</ul>
</div>
<p><a href="http://feedads.g.doubleclick.net/~a/3i5pLseo7_IqFXvxUScSSctjTnk/0/da"><img src="http://feedads.g.doubleclick.net/~a/3i5pLseo7_IqFXvxUScSSctjTnk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/3i5pLseo7_IqFXvxUScSSctjTnk/1/da"><img src="http://feedads.g.doubleclick.net/~a/3i5pLseo7_IqFXvxUScSSctjTnk/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=IpQovHfO"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=b2WoNUY8"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?i=b2WoNUY8" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=hw8oNBTW"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=AbzQG8J8"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?i=AbzQG8J8" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AlexPolskisBlog/~4/Nno57DdwlJM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://alexpolski.com/2009/02/03/php-adsense-monitor-update/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://alexpolski.com/2009/02/03/php-adsense-monitor-update/</feedburner:origLink></item>
		<item>
		<title>Scrapy framework</title>
		<link>http://feedproxy.google.com/~r/AlexPolskisBlog/~3/82L4EmqHfnQ/</link>
		<comments>http://alexpolski.com/2009/01/25/scrapy-framework/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 20:07:43 +0000</pubDate>
		<dc:creator>Alex Polski</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Scraping]]></category>

		<guid isPermaLink="false">http://alexpolski.com/?p=128</guid>
		<description><![CDATA[Paul Maunders said me about cool scraping and crawling framework based on python &#8211; Scrapy. I&#8217;ve tried it and developed about 20 spiders. It&#8217;s really nice stuff but it would be great if scrapy&#8217;s developers will add some more features:

Rules for form submitting
Proxy server support

Visit scrapy website
Most Commented Posts

PageRank Spider
Finally, Mass PageRank Checker tool!
Mass PageRank [...]]]></description>
			<content:encoded><![CDATA[<div class="ids_container" style="overflow: hidden;"><p><a href="http://www.pyrosoft.co.uk/blog/">Paul Maunders</a> said me about cool scraping and crawling framework based on python &#8211; <a href="http://scrapy.org/">Scrapy</a>. I&#8217;ve tried it and developed about 20 spiders. It&#8217;s really nice stuff but it would be great if scrapy&#8217;s developers will add some more features:</p>
<ol>
<li>Rules for form submitting</li>
<li>Proxy server support</li>
</ol>
<p><a href="http://scrapy.org/">Visit scrapy website</a><br />
<h3>Most Commented Posts</h3>
<ul class="related_post">
<li><a href="http://alexpolski.com/projects/pagerank-spider/" title="PageRank Spider">PageRank Spider</a></li>
<li><a href="http://alexpolski.com/2008/04/18/finally-mass-pagerank-checker-tool/" title="Finally, Mass PageRank Checker tool!">Finally, Mass PageRank Checker tool!</a></li>
<li><a href="http://alexpolski.com/projects/mass-pagerank-checker/" title="Mass PageRank Checker">Mass PageRank Checker</a></li>
<li><a href="http://alexpolski.com/2009/02/03/php-adsense-monitor-update/" title="PHP Adsense monitor update">PHP Adsense monitor update</a></li>
<li><a href="http://alexpolski.com/2008/05/06/mass-pagerank-checker-updated/" title="Mass PageRank Checker updated!">Mass PageRank Checker updated!</a></li>
</ul>
</div>
<p><a href="http://feedads.g.doubleclick.net/~a/FKJ7hhICvI7Ut_vnMJ2tO0ZgmdM/0/da"><img src="http://feedads.g.doubleclick.net/~a/FKJ7hhICvI7Ut_vnMJ2tO0ZgmdM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/FKJ7hhICvI7Ut_vnMJ2tO0ZgmdM/1/da"><img src="http://feedads.g.doubleclick.net/~a/FKJ7hhICvI7Ut_vnMJ2tO0ZgmdM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=iwIUvAKh"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=MpeeJo1v"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?i=MpeeJo1v" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=OfkDtwHG"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=X3GDS73X"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?i=X3GDS73X" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AlexPolskisBlog/~4/82L4EmqHfnQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://alexpolski.com/2009/01/25/scrapy-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://alexpolski.com/2009/01/25/scrapy-framework/</feedburner:origLink></item>
		<item>
		<title>PHP account adsense monitor</title>
		<link>http://feedproxy.google.com/~r/AlexPolskisBlog/~3/xY5Sok5wTBE/</link>
		<comments>http://alexpolski.com/2008/11/09/php-account-adsense-monitor/#comments</comments>
		<pubDate>Sun, 09 Nov 2008 20:04:58 +0000</pubDate>
		<dc:creator>Alex Polski</dc:creator>
				<category><![CDATA[Adsense]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://alexpolski.com/?p=115</guid>
		<description><![CDATA[There is a nice PHP class for the retrieving the data from Google Adsense account like impressions, clicks, ctr, ecpm and earnings &#8211; PHP account adsense monitor. But it does not work now, seems Google updated the authorization system for Adsense. I&#8217;ve fixed it a bit and now you can use it in your web [...]]]></description>
			<content:encoded><![CDATA[<div class="ids_container" style="overflow: hidden;"><p>There is a nice PHP class for the retrieving the data from Google Adsense account like impressions, clicks, ctr, ecpm and earnings &#8211; <a href="http://www.webtoolkit.info/php-adsense-account-monitor.html">PHP account adsense monitor</a>. But it does not work now, seems Google updated the authorization system for Adsense. I&#8217;ve fixed it a bit and now you can use it in your web applications.</p>
<p>A small example:</p>
<pre><code>&lt;?php
include('adsense.php');

$adsense = new AdSense();
if ($adsense-&gt;connect('username', 'password'))
{
  $data = $adsense-&gt;yesterday();
  var_dump($data);
}
else
{
  die('Could not login to AdSense account!');
}
?&gt;</code></pre>
<p>This code will output something like this:</p>
<pre><code>array(5) {
  ["impressions"]=&gt;
  string(2) "49"
  ["clicks"]=&gt;
  string(1) "0"
  ["ctr"]=&gt;
  string(5) "0.00%"
  ["ecpm"]=&gt;
  string(5) "$0.00"
  ["earnings"]=&gt;
  string(5) "$0.00"
}</code></pre>
<p>You can <a href='http://alexpolski.com/wp-content/uploads/2008/11/adsense.php.txt'>download the script here</a>.<br />
<h3>Related posts</h3>
<ul class="related_post">
<li><a href="http://alexpolski.com/2009/03/19/php-adsense-account-library-news-and-stats/" title="PHP AdSense account library news and stats">PHP AdSense account library news and stats</a></li>
<li><a href="http://alexpolski.com/2008/07/24/backing-up-mysql-tables-under-extremal-conditions/" title="Backing up MySQL tables under extremal conditions">Backing up MySQL tables under extremal conditions</a></li>
<li><a href="http://alexpolski.com/2008/07/14/add-perl-and-php-search-engine-plugins-to-your-browser/" title="Add Perl and PHP search engine plugins to your browser">Add Perl and PHP search engine plugins to your browser</a></li>
<li><a href="http://alexpolski.com/2008/04/27/how-old-is-your-site/" title="How old is your site?">How old is your site?</a></li>
<li><a href="http://alexpolski.com/2008/04/15/how-to-check-google-pagerank-in-php/" title="How to check Google PageRank in PHP">How to check Google PageRank in PHP</a></li>
</ul>
</div>
<p><a href="http://feedads.g.doubleclick.net/~a/_CSxyf2zuBTrVxPD_jbfM16ub_E/0/da"><img src="http://feedads.g.doubleclick.net/~a/_CSxyf2zuBTrVxPD_jbfM16ub_E/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/_CSxyf2zuBTrVxPD_jbfM16ub_E/1/da"><img src="http://feedads.g.doubleclick.net/~a/_CSxyf2zuBTrVxPD_jbfM16ub_E/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=unt4rAcB"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=KX4SMtYd"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?i=KX4SMtYd" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=95AARdAo"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=jSb8S3wb"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?i=jSb8S3wb" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AlexPolskisBlog/~4/xY5Sok5wTBE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://alexpolski.com/2008/11/09/php-account-adsense-monitor/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://alexpolski.com/2008/11/09/php-account-adsense-monitor/</feedburner:origLink></item>
		<item>
		<title>How to develop a good scraper on Perl – Lesson 3</title>
		<link>http://feedproxy.google.com/~r/AlexPolskisBlog/~3/zLWs25u8TDQ/</link>
		<comments>http://alexpolski.com/2008/10/09/how-to-develop-a-good-scraper-on-perl-lesson-3/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 19:25:33 +0000</pubDate>
		<dc:creator>Alex Polski</dc:creator>
				<category><![CDATA[Scraping]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[scraper]]></category>
		<category><![CDATA[threads]]></category>

		<guid isPermaLink="false">http://alexpolski.com/?p=99</guid>
		<description><![CDATA[You can find the beginning of this post here &#8211; How to develop a good scraper on Perl &#8211; Lesson 1 and How to develop a good scraper on Perl &#8211; Lesson 2
If your scraper works as just one thread it can be very slow to scrape a large site for a short time. Perl [...]]]></description>
			<content:encoded><![CDATA[<div class="ids_container" style="overflow: hidden;"><p>You can find the beginning of this post here &#8211; <a href="http://alexpolski.com/2008/08/29/how-to-develop-a-good-scraper-on-perl-lesson-1/">How to develop a good scraper on Perl &#8211; Lesson 1</a> and <a href="http://alexpolski.com/2008/09/24/how-to-develop-a-good-scraper-on-perl-lesson-2/">How to develop a good scraper on Perl &#8211; Lesson 2</a></p>
<p>If your scraper works as just one thread it can be very slow to scrape a large site for a short time. Perl has a set of classes that will help you to run as many threads as you want simultaneously:</p>
<pre><code>use threads;

#run 'scrape' function in 10 threads
my @threads;
for (1..10) {
  my $thr = threads->create(\&#038;scrape);
  $thr->detach;
  push @threads, $thr;
}</code></pre>
<p>You can share the variables between threads:</p>
<pre><code>use threads::shared;

my $counter :shared = 0;

sub scrape {
  ...
  {
    #lock 'counter' variable and modify it's value
    lock $counter;
    $counter++;
  }
  #here 'counter' variable will be unlocked
  ...
}</code></pre>
<p>It&#8217;s recommended to start one additional thread which will control the other ones:</p>
<pre><code>sub control {
  while (1) {
    for (my $i = 0; $i < 10; $i++) {
      #check if the threads are alive
      if ($threads[$i] eq undef || !$threads[$i]->is_running) {
        #if some threads are dead, run them again
        print "Some of the threads is stopped! Rerunning...\n";
        $threads[$i] = threads->create(\&#038;scrape);
        $threads[$i]->detach unless ($threads[$i] eq undef);
      }
      sleep(1);
    }
  }
}</code></pre>
<p>And the last tasty thing is thread queues. You can just add urls to the queue and your threads will get them from queue or wait if the queue is empty:</p>
<pre><code>use Thread::Queue;

#create queue
my $data_queue = Thread::Queue->new();

sub scrape {
  #get url from the queue or wait if the queue is empty
  while (my $params = $data_queue->dequeue) {
    my $url = $params->[0];
    ...
  }
}

#add url to the queue
$data_queue->enqueue(['http://www.example.com/']);</code></pre>
<p>You can find the documentation for all these classes here: <a href="http://perldoc.perl.org/threads.html">threads class</a>, <a href="http://perldoc.perl.org/perlthrtut.html">threads tutorial</a>, <a href="http://perldoc.perl.org/threads/shared.html">threads::shared</a>, <a href="http://search.cpan.org/~jdhedden/Thread-Queue-2.11/lib/Thread/Queue.pm">Thread::Queue</a>.</p>
<p>The books I recommend:</p>
<p><iframe src="http://rcm.amazon.com/e/cm?t=alexpolsksdev-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=0596003137&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe> <iframe src="http://rcm.amazon.com/e/cm?t=alexpolsksdev-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=0596000278&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe> <iframe src="http://rcm.amazon.com/e/cm?t=alexpolsksdev-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=0596001789&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br />
<h3>Related posts</h3>
<ul class="related_post">
<li><a href="http://alexpolski.com/2008/09/24/how-to-develop-a-good-scraper-on-perl-lesson-2/" title="How to develop a good scraper on Perl &#8211; Lesson 2">How to develop a good scraper on Perl &#8211; Lesson 2</a></li>
<li><a href="http://alexpolski.com/2008/08/29/how-to-develop-a-good-scraper-on-perl-lesson-1/" title="How to develop a good scraper on Perl &#8211; Lesson 1">How to develop a good scraper on Perl &#8211; Lesson 1</a></li>
<li><a href="http://alexpolski.com/2008/07/14/add-perl-and-php-search-engine-plugins-to-your-browser/" title="Add Perl and PHP search engine plugins to your browser">Add Perl and PHP search engine plugins to your browser</a></li>
</ul>
</div>
<p><a href="http://feedads.g.doubleclick.net/~a/9jOKHIdsa3RzJY_grY4O8EmDgxw/0/da"><img src="http://feedads.g.doubleclick.net/~a/9jOKHIdsa3RzJY_grY4O8EmDgxw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/9jOKHIdsa3RzJY_grY4O8EmDgxw/1/da"><img src="http://feedads.g.doubleclick.net/~a/9jOKHIdsa3RzJY_grY4O8EmDgxw/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=mAXAxZTF"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=QrbnK5mb"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?i=QrbnK5mb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=H4LOoxfr"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=uxbcAtfY"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?i=uxbcAtfY" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AlexPolskisBlog/~4/zLWs25u8TDQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://alexpolski.com/2008/10/09/how-to-develop-a-good-scraper-on-perl-lesson-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://alexpolski.com/2008/10/09/how-to-develop-a-good-scraper-on-perl-lesson-3/</feedburner:origLink></item>
		<item>
		<title>How to develop a good scraper on Perl – Lesson 2</title>
		<link>http://feedproxy.google.com/~r/AlexPolskisBlog/~3/RO5aeByT0CE/</link>
		<comments>http://alexpolski.com/2008/09/24/how-to-develop-a-good-scraper-on-perl-lesson-2/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 13:51:00 +0000</pubDate>
		<dc:creator>Alex Polski</dc:creator>
				<category><![CDATA[Scraping]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[scraper]]></category>
		<category><![CDATA[treebuilder]]></category>
		<category><![CDATA[xpath]]></category>

		<guid isPermaLink="false">http://alexpolski.com/?p=91</guid>
		<description><![CDATA[You can find the beginning of this post here &#8211; How to develop a good scraper on Perl &#8211; Lesson 1
2. Treebuilder class allows you to convert html page to the tree structure and perform the operations with the tree nodes like searching, walking through the nodes etc. If you will add XPath support to [...]]]></description>
			<content:encoded><![CDATA[<div class="ids_container" style="overflow: hidden;"><p>You can find the beginning of this post here &#8211; <a href="http://alexpolski.com/2008/08/29/how-to-develop-a-good-scraper-on-perl-lesson-1/">How to develop a good scraper on Perl &#8211; Lesson 1</a></p>
<p>2. <a href="http://search.cpan.org/~petek/HTML-Tree-3.23/lib/HTML/TreeBuilder.pm">Treebuilder class</a> allows you to convert html page to the tree structure and perform the operations with the tree nodes like searching, walking through the nodes etc. If you will add <a href="http://search.cpan.org/~mirod/HTML-TreeBuilder-XPath-0.09/lib/HTML/TreeBuilder/XPath.pm">XPath support</a> to the Treebuilder class, you will get very powerful tool for html parsing. Look at the example below.</p>
<pre><code>use HTML::TreeBuilder::XPath;

#create treebuilder object and parse the html code from content variable
my $tree = HTML::TreeBuilder::XPath->new_from_content($content);

#find all nodes 'div->h1' in the tree, div node must have 'class' attribute
#that will match the '/details\d+/i' regular expression
if (my @name_nodes = $tree->findnodes('//div[@class=~/details\d+/i]/h1')) {
  #get the trimmed text value from the first result node
  $name = $name_nodes[0]->as_trimmed_text;
}</code></pre>
<p>You can find the full documentation here: a href=&#8221;http://search.cpan.org/~petek/HTML-Tree-3.23/lib/HTML/TreeBuilder.pm&#8221;>HTML::TreeBuilder</a>, <a href="http://search.cpan.org/~mirod/HTML-TreeBuilder-XPath-0.09/lib/HTML/TreeBuilder/XPath.pm">HTML::TreeBuilder::XPath</a></p>
<p>The books I recommend:</p>
<p><iframe src="http://rcm.amazon.com/e/cm?t=alexpolsksdev-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=0596003137&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe> <iframe src="http://rcm.amazon.com/e/cm?t=alexpolsksdev-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=0596000278&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe> <iframe src="http://rcm.amazon.com/e/cm?t=alexpolsksdev-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=0596001789&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br />
<h3>Related posts</h3>
<ul class="related_post">
<li><a href="http://alexpolski.com/2008/10/09/how-to-develop-a-good-scraper-on-perl-lesson-3/" title="How to develop a good scraper on Perl &#8211; Lesson 3">How to develop a good scraper on Perl &#8211; Lesson 3</a></li>
<li><a href="http://alexpolski.com/2008/08/29/how-to-develop-a-good-scraper-on-perl-lesson-1/" title="How to develop a good scraper on Perl &#8211; Lesson 1">How to develop a good scraper on Perl &#8211; Lesson 1</a></li>
<li><a href="http://alexpolski.com/2008/07/14/add-perl-and-php-search-engine-plugins-to-your-browser/" title="Add Perl and PHP search engine plugins to your browser">Add Perl and PHP search engine plugins to your browser</a></li>
</ul>
</div>
<p><a href="http://feedads.g.doubleclick.net/~a/tr9USK8g4cjPFmPLg_AuZKNVu3s/0/da"><img src="http://feedads.g.doubleclick.net/~a/tr9USK8g4cjPFmPLg_AuZKNVu3s/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/tr9USK8g4cjPFmPLg_AuZKNVu3s/1/da"><img src="http://feedads.g.doubleclick.net/~a/tr9USK8g4cjPFmPLg_AuZKNVu3s/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=U4IMejLu"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=jugBCE0M"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?i=jugBCE0M" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=1EUBwO7z"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=VNMmUMJI"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?i=VNMmUMJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AlexPolskisBlog/~4/RO5aeByT0CE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://alexpolski.com/2008/09/24/how-to-develop-a-good-scraper-on-perl-lesson-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://alexpolski.com/2008/09/24/how-to-develop-a-good-scraper-on-perl-lesson-2/</feedburner:origLink></item>
		<item>
		<title>How to develop a good scraper on Perl – Lesson 1</title>
		<link>http://feedproxy.google.com/~r/AlexPolskisBlog/~3/Ey19w3zmhkc/</link>
		<comments>http://alexpolski.com/2008/08/29/how-to-develop-a-good-scraper-on-perl-lesson-1/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 12:48:30 +0000</pubDate>
		<dc:creator>Alex Polski</dc:creator>
				<category><![CDATA[Scraping]]></category>
		<category><![CDATA[mechanize]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[scraper]]></category>

		<guid isPermaLink="false">http://alexpolski.com/?p=81</guid>
		<description><![CDATA[If you want to develop a good scraper Perl can be very good solution for you. It has all you need for these purposes: mechanize library, treebuilder class and threads support.
1. Mechanize library is a complex library for automating interaction with websites. It completely simulates user&#8217;s activity like clicking on links and submitting forms and [...]]]></description>
			<content:encoded><![CDATA[<div class="ids_container" style="overflow: hidden;"><p>If you want to develop a good scraper Perl can be very good solution for you. It has all you need for these purposes: mechanize library, treebuilder class and threads support.</p>
<p>1. Mechanize library is a complex library for automating interaction with websites. It completely simulates user&#8217;s activity like clicking on links and submitting forms and has a lot of another useful features. Let&#8217;s look at the code:</p>
<pre><code>use WWW::Mechanize;

#create mechanize object
my $mech = WWW::Mechanize->new();

#set user agent string
$mech->agent('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1');

#go to http://www.example.com/
$mech->get('http://www.example.com/');

#click on link 'Some text'
$mech->follow_link(text => 'Some text');

#fill and submit the form
$mech->submit_form(
  form_name => 'search',
  fields => { query => 'Some text' },
  button => 'Search Now'
);
</code></pre>
<p>Of course, there were basic features used in the example above, you can find <a href="http://search.cpan.org/~petdance/WWW-Mechanize/">full documentation here</a>.</p>
<p>The books I recommend:</p>
<p><iframe src="http://rcm.amazon.com/e/cm?t=alexpolsksdev-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=0596003137&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe> <iframe src="http://rcm.amazon.com/e/cm?t=alexpolsksdev-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=0596000278&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe> <iframe src="http://rcm.amazon.com/e/cm?t=alexpolsksdev-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=0596001789&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br />
<h3>Related posts</h3>
<ul class="related_post">
<li><a href="http://alexpolski.com/2008/10/09/how-to-develop-a-good-scraper-on-perl-lesson-3/" title="How to develop a good scraper on Perl &#8211; Lesson 3">How to develop a good scraper on Perl &#8211; Lesson 3</a></li>
<li><a href="http://alexpolski.com/2008/09/24/how-to-develop-a-good-scraper-on-perl-lesson-2/" title="How to develop a good scraper on Perl &#8211; Lesson 2">How to develop a good scraper on Perl &#8211; Lesson 2</a></li>
<li><a href="http://alexpolski.com/2008/07/14/add-perl-and-php-search-engine-plugins-to-your-browser/" title="Add Perl and PHP search engine plugins to your browser">Add Perl and PHP search engine plugins to your browser</a></li>
</ul>
</div>
<p><a href="http://feedads.g.doubleclick.net/~a/eidhUseFFgcwxw6fwl7kVoIeaMY/0/da"><img src="http://feedads.g.doubleclick.net/~a/eidhUseFFgcwxw6fwl7kVoIeaMY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/eidhUseFFgcwxw6fwl7kVoIeaMY/1/da"><img src="http://feedads.g.doubleclick.net/~a/eidhUseFFgcwxw6fwl7kVoIeaMY/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=9h3JuiFH"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=AF3FzttY"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?i=AF3FzttY" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=zSp7oCZb"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AlexPolskisBlog?a=FpuTyXZd"><img src="http://feeds.feedburner.com/~f/AlexPolskisBlog?i=FpuTyXZd" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AlexPolskisBlog/~4/Ey19w3zmhkc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://alexpolski.com/2008/08/29/how-to-develop-a-good-scraper-on-perl-lesson-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://alexpolski.com/2008/08/29/how-to-develop-a-good-scraper-on-perl-lesson-1/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 0.728 seconds --><!-- Cached page served by WP-Cache -->
