<?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>Monzool's Personal Publishing &#187; Python</title>
	<atom:link href="http://monzool.net/blog/category/programming/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://monzool.net/blog</link>
	<description>a/ Jan Skriver Sørensen</description>
	<lastBuildDate>Wed, 08 Jun 2011 18:54:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Why Lambda?</title>
		<link>http://monzool.net/blog/2008/03/19/why-lambda/</link>
		<comments>http://monzool.net/blog/2008/03/19/why-lambda/#comments</comments>
		<pubDate>Wed, 19 Mar 2008 09:58:44 +0000</pubDate>
		<dc:creator>monzool</dc:creator>
				<category><![CDATA[Lua]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://monzool.net/blog/2008/03/19/why-lambda/</guid>
		<description><![CDATA[I HAVE BEEN reading up on Python programming lately (more on that in a later post). I&#8217;ve now been introduced to anonymous functions. In Python, anonymous functions are available using the lambda keyword. Anonymous functions are great, but I think the Lua syntax for anonymous functions is superior to the syntax adopted in Python. A [...]]]></description>
			<content:encoded><![CDATA[<p><strong>I HAVE BEEN</strong> reading up on Python programming lately (more on that in a <a href="http://monzool.net/blog/2008/03/21/core-python-programming/" class="locallink">later post</a>). I&#8217;ve now been introduced to anonymous functions. In Python, anonymous functions are available using the <code>lambda</code> keyword. Anonymous functions are great, but I think the Lua syntax for anonymous functions is superior to the syntax adopted in Python. </p>
<pre></pre>
<p>A normal function, in Python, is defined using the <code>def</code> keyword along with a function name.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">def</span> f1<span style="color: black;">&#40;</span>x, y<span style="color: black;">&#41;</span>:
...     <span style="color: #ff7700;font-weight:bold;">return</span> x + y
... 
<span style="color: #66cc66;">&gt;&gt;&gt;</span> f1<span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span>, <span style="color: #ff4500;">2</span><span style="color: black;">&#41;</span>
<span style="color: #ff4500;">3</span></pre></div></div>

<p>In Python anonymous functions are created by a lambda expression.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">&gt;&gt;&gt;</span> f2 = <span style="color: #ff7700;font-weight:bold;">lambda</span> x, y: x + y
<span style="color: #66cc66;">&gt;&gt;&gt;</span> f2<span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span>, <span style="color: #ff4500;">2</span><span style="color: black;">&#41;</span>
<span style="color: #ff4500;">3</span></pre></div></div>

<p>Similar to anonymous function, normal Python functions are first class objects and can be assigned to other variables.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">&gt;&gt;&gt;</span> f = f1
<span style="color: #66cc66;">&gt;&gt;&gt;</span> f<span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span>, <span style="color: #ff4500;">2</span><span style="color: black;">&#41;</span>
<span style="color: #ff4500;">3</span></pre></div></div>

<p>However direct assignment of a function deceleration is not possible.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">&gt;&gt;&gt;</span> f = <span style="color: #ff7700;font-weight:bold;">def</span> f3<span style="color: black;">&#40;</span>x, y<span style="color: black;">&#41;</span>:
  File <span style="color: #483d8b;">&quot;&lt;stdin&gt;&quot;</span>, line <span style="color: #ff4500;">1</span>
    f = <span style="color: #ff7700;font-weight:bold;">def</span> f3<span style="color: black;">&#40;</span>x, y<span style="color: black;">&#41;</span>:
           ^
<span style="color: #008000;">SyntaxError</span>: invalid syntax</pre></div></div>

<p>This last example resembles the concept of the anonymous function syntax chosen in Lua. First a look on how a normal function is defined in Lua. Its not that different from the Python version.</p>

<div class="wp_syntax"><div class="code"><pre class="lua" style="font-family:monospace;"><span style="color: #66cc66;">&gt;</span> <span style="color: #b1b100;">function</span> f1<span style="color: #66cc66;">&#40;</span>x, y<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&gt;&gt;</span>   <span style="color: #b1b100;">return</span> x + y
<span style="color: #66cc66;">&gt;&gt;</span> <span style="color: #b1b100;">end</span>
<span style="color: #66cc66;">&gt;</span> <span style="color: #b1b100;">print</span><span style="color: #66cc66;">&#40;</span> f1<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>
<span style="color: #cc66cc;">3</span></pre></div></div>

<p>Like in Python, functions are first class objects in Lua and thus also supports aliasing functions.</p>

<div class="wp_syntax"><div class="code"><pre class="lua" style="font-family:monospace;"><span style="color: #66cc66;">&gt;</span> f <span style="color: #66cc66;">=</span> f1
<span style="color: #66cc66;">&gt;</span> <span style="color: #b1b100;">print</span><span style="color: #66cc66;">&#40;</span> f<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>
<span style="color: #cc66cc;">3</span></pre></div></div>

<p>The syntax for anonymous function in Lua differs not much for how normal functions are defined. The function name is omitted (hence anonymous) and secondly the function definition is wrapped in parentheses.</p>

<div class="wp_syntax"><div class="code"><pre class="lua" style="font-family:monospace;"><span style="color: #66cc66;">&gt;</span> f2 <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">function</span><span style="color: #66cc66;">&#40;</span>x, y<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&gt;&gt;</span>   <span style="color: #b1b100;">return</span> x + y 
<span style="color: #66cc66;">&gt;&gt;</span> <span style="color: #b1b100;">end</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&gt;</span> <span style="color: #b1b100;">print</span><span style="color: #66cc66;">&#40;</span> f2<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>
<span style="color: #cc66cc;">3</span>
<span style="color: #66cc66;">&gt;</span> <span style="color: #808080; font-style: italic;">-- Or as one-liner if preferred</span>
<span style="color: #66cc66;">&gt;</span> f2 <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">function</span><span style="color: #66cc66;">&#40;</span>x, y<span style="color: #66cc66;">&#41;</span> <span style="color: #b1b100;">return</span> x + y <span style="color: #b1b100;">end</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&gt;</span> <span style="color: #b1b100;">print</span><span style="color: #66cc66;">&#40;</span> f2<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>
<span style="color: #cc66cc;">3</span></pre></div></div>

<p>In Lua a function is a function and defined as such &#8211; being anonymous or not. I think this approach is more elegant that using a dedicated <code>lambda</code> keyword.</p>
]]></content:encoded>
			<wfw:commentRss>http://monzool.net/blog/2008/03/19/why-lambda/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Help On Python Regular Expressions</title>
		<link>http://monzool.net/blog/2007/10/15/help-on-python-regular-expressions/</link>
		<comments>http://monzool.net/blog/2007/10/15/help-on-python-regular-expressions/#comments</comments>
		<pubDate>Mon, 15 Oct 2007 20:38:21 +0000</pubDate>
		<dc:creator>monzool</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Regular Expressions]]></category>

		<guid isPermaLink="false">http://monzool.net/blog/2007/10/15/help-on-python-regular-expressions/</guid>
		<description><![CDATA[REGULAR EXPRESSIONS ARE a powerful friend, but the friendship doesn&#8217;t come easy. Regular expressions can be somewhat baffling getting a grasp on, but when finally understood, the possibilities are almost endless. When developing the searching expression used in HTML Parsing With Beautiful Soup I realized that my regular expression knowledge had gotten a bit rusty. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>REGULAR EXPRESSIONS ARE</strong> a powerful friend, but the friendship doesn&#8217;t come easy. <a href="http://www.regular-expressions.info/" title="Regular Expression information">Regular expressions</a> can be somewhat baffling getting a grasp on, but when finally understood, the possibilities are almost endless.</p>
<p>When developing the searching expression used in <a href="http://monzool.net/blog/2007/10/15/html-parsing-with-beautiful-soup/" class="locallink">HTML Parsing With Beautiful Soup</a> I realized that my regular expression knowledge had gotten a bit rusty. Fortunately I had double-up on the luck. 1) It was a Python program, hence the Python shell was available. 2) I found <a href="http://en.wikipedia.org/wiki/David_Mertz">David Mertz</a>&#8216;s book <a href="http://gnosis.cx/TPiP/">Text Processing in Python</a>.
</p>
<p>The Python shell makes it easy to experiment and tweak any regular expressions on the fly, but the downside is that its not easy to visually evaluate the outcome of your current expression. David&#8217;s book helped two folds. It has extensive theory on Python regular expression syntax, but most superhero-like is the small function provided, that makes it possible to see the outcome of an evaluated expression.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;"># Credits: David Mertz</span>
<span style="color: #ff7700;font-weight:bold;">def</span> re_show<span style="color: black;">&#40;</span>pat, s<span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #dc143c;">re</span>.<span style="color: #008000;">compile</span><span style="color: black;">&#40;</span> pat, <span style="color: #dc143c;">re</span>.<span style="color: black;">M</span> <span style="color: black;">&#41;</span>.<span style="color: black;">sub</span><span style="color: black;">&#40;</span> <span style="color: #483d8b;">&quot;{<span style="color: #000099; font-weight: bold;">\g</span>&lt;0&gt;}&quot;</span>, s.<span style="color: black;">rstrip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#41;</span>, <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span>'</span></pre></div></div>

<p>
<p class="section">Using regular expressions in Python requires importing of the regular expression libirary.</p>
</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">re</span></pre></div></div>

<p>
<p>If using the Python shell just enter the same in the shell prompt. The function by David Mertz can also be typed directly into the shell</p>
</p>
<div class="dotbox">
<pre>
>>> import re
>>> def re_show(pat, s):
...    print re.compile( pat, re.M ).sub( "{\g<0>}", s.rstrip() ), '\n'
>>>
</pre>
</div>
<p>
<p>The <code>re_show</code> wrapper displays the source and emphasizes the result of the expression, as being the contents between the &#8216;{&#8216; and &#8216;}&#8217; pair.
</p>
<p>
<p class="section">Next is creation of some example text on which to experiment.</p>
</p>
<div class="dotbox">
<pre>
>>> s = 'if (Hulk.color != "green"): print "Grey Hulk"'
</pre>
</div>
<p>
<p class="section">Now the experiments can begin. The following searches for everything between the first &#8216;(&#8216; to the last &#8216;)&#8217;.</p>
</p>
<div class="dotbox">
<pre>
>>> re_show(r'\(.*\)', s)
</pre>
</div>
<p>Result: </p>
<p>
  <code>if</code><strong><code>{</code></strong><code>(Hulk.color != "green")</code><strong><code>}</code></strong><code>: print "Grey Hulk"</code>
  </p>
</p>
<p class="section">
<p>Another example could be an case-insensitive match on the colors of Hulk.</p>
<div class="dotbox">
<pre>
>>> re_show(r'(?i)green|(?i)grey', s)
</pre>
</div>
<div></div>
<p>Result: </p>
<p>
  <code>if (Hulk.color != "</code><strong><code>{</code></strong><code>green</code><strong><code>}</code></strong><code>"): print "</code><strong><code>{</code></strong><code>Grey</code><strong><code>}</code></strong><code>Hulk"</code>
 </p>
</p>
<p class="section">This is just at minuscule introduction to the powers of regular expressions. If your into regular expressions in Python, I highly recommend to buying the book &#8211; or donate and read it online.</p>
]]></content:encoded>
			<wfw:commentRss>http://monzool.net/blog/2007/10/15/help-on-python-regular-expressions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HTML Parsing With Beautiful Soup</title>
		<link>http://monzool.net/blog/2007/10/15/html-parsing-with-beautiful-soup/</link>
		<comments>http://monzool.net/blog/2007/10/15/html-parsing-with-beautiful-soup/#comments</comments>
		<pubDate>Mon, 15 Oct 2007 18:32:00 +0000</pubDate>
		<dc:creator>monzool</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://monzool.net/blog/2007/10/15/html-parsing-with-beautiful-soup/</guid>
		<description><![CDATA[BEAUTIFUL SOUP IS an HTML/XML parser written in Python. Beautiful Soup excels as an easy to use parser that requires no knowledge of actual parsing theory and techniques. And thanks to the excellent documentation with many code examples, it is easy to fabricate some working code very quickly. On Debian, Beautiful Soup can be install [...]]]></description>
			<content:encoded><![CDATA[<p><strong>BEAUTIFUL SOUP IS</strong> an HTML/XML parser written in Python. <a href="http://www.crummy.com/software/BeautifulSoup/" title="Beautiful Soup">Beautiful Soup</a> excels as an easy to use parser that requires no knowledge of actual parsing theory and techniques. And thanks to the <a href="http://www.crummy.com/software/BeautifulSoup/documentation.html" title="Beautiful Soup documentation">excellent documentation</a> with many code examples, it is easy to fabricate some working code very quickly.</p>
<p class="section">On Debian, Beautiful Soup can be install via <em>apt-get</em> / <em>aptitude</em>:<br />
<code>aptitude install python-beautifulsoup</code></p>
<p class="section">The example below extracts the hit counter from this very page. Note that this is perhaps not the best example in the world (the only parse value used is the &#8220;footer&#8221; section), but it does exemplifies how easily the process of extracting data from a HTML page can be done when utilizing the Beautiful Soup parser.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
<span style="color: #808080; font-style: italic;"># coding=utf-8</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">from</span> BeautifulSoup <span style="color: #ff7700;font-weight:bold;">import</span> BeautifulSoup          <span style="color: #808080; font-style: italic;"># For processing HTML</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">urllib2</span>                                   <span style="color: #808080; font-style: italic;"># URL tools</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">re</span>                                        <span style="color: #808080; font-style: italic;"># Regular expressions</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> FindHits<span style="color: black;">&#40;</span>proxyUrl<span style="color: black;">&#41;</span>:
    <span style="color: #808080; font-style: italic;"># URL to HTML parse</span>
    url = <span style="color: #483d8b;">'http://monzool.net/blog/index.php'</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>proxyUrl<span style="color: black;">&#41;</span> <span style="color: #66cc66;">&gt;</span> <span style="color: #ff4500;">0</span>:
        <span style="color: #808080; font-style: italic;"># Proxy set up</span>
        proxy = <span style="color: #dc143c;">urllib2</span>.<span style="color: black;">ProxyHandler</span><span style="color: black;">&#40;</span> <span style="color: black;">&#123;</span><span style="color: #483d8b;">'http'</span>: proxyUrl<span style="color: black;">&#125;</span> <span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;"># Create an URL opener utilizing proxy</span>
        opener = <span style="color: #dc143c;">urllib2</span>.<span style="color: black;">build_opener</span><span style="color: black;">&#40;</span> proxy <span style="color: black;">&#41;</span>
        <span style="color: #dc143c;">urllib2</span>.<span style="color: black;">install_opener</span><span style="color: black;">&#40;</span> opener <span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;"># Aquire data from URL</span>
        request = <span style="color: #dc143c;">urllib2</span>.<span style="color: black;">Request</span><span style="color: black;">&#40;</span> url <span style="color: black;">&#41;</span>
        response = <span style="color: #dc143c;">urllib2</span>.<span style="color: black;">urlopen</span><span style="color: black;">&#40;</span> request <span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">else</span>:
        <span style="color: #808080; font-style: italic;"># Aquire data from URL</span>
        response = <span style="color: #dc143c;">urllib2</span>.<span style="color: black;">urlopen</span><span style="color: black;">&#40;</span> url <span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;"># Extract data as HTML data</span>
    html = response.<span style="color: black;">read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;"># Parse HTML data</span>
    soup = BeautifulSoup<span style="color: black;">&#40;</span> html <span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;"># Search requested page for &lt;div&gt; section with id=&quot;footer&quot;</span>
    <span style="color: #808080; font-style: italic;"># (The result is returned in unicode)</span>
    footer = soup.<span style="color: black;">findAll</span><span style="color: black;">&#40;</span> <span style="color: #483d8b;">'div'</span>, <span style="color: #008000;">id</span>=<span style="color: #483d8b;">&quot;footer&quot;</span> <span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;"># Hint: on this site, it is known that only a single &quot;footer&quot; section</span>
    <span style="color: #808080; font-style: italic;"># exists, and that the hit counter resides in that same section</span>
&nbsp;
    <span style="color: #808080; font-style: italic;"># Search for the frase &quot;Hits=&lt;some number&gt;&quot;</span>
    pattern = <span style="color: #dc143c;">re</span>.<span style="color: #008000;">compile</span><span style="color: black;">&#40;</span> r<span style="color: #483d8b;">'Hits=.*[0-9]'</span> <span style="color: black;">&#41;</span>
    items = <span style="color: #dc143c;">re</span>.<span style="color: black;">findall</span><span style="color: black;">&#40;</span> pattern, <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>footer<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;"># Print result</span>
    <span style="color: #ff7700;font-weight:bold;">print</span> items<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>        <span style="color: #808080; font-style: italic;"># -&gt; &quot;Hits=&lt;count&gt;&quot;</span>
&nbsp;
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Processing...&quot;</span>
    FindHits<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#41;</span>          <span style="color: #808080; font-style: italic;"># Supply proxy if required. </span>
                          <span style="color: #808080; font-style: italic;"># FindHist(&quot;http://&lt;proxyname&gt;:&lt;port&gt;&quot;)</span></pre></td></tr></table></div>

<p><p class="section">Explanation: If connecting to the internet through a proxy, some additional setup must be done to <a href="http://www.voidspace.org.uk/python/articles/urllib2.shtml" title="urlib2 tutorial">urllib2</a>. Although urllib2 do provide some automatic proxy configuration detection, but here the configuration is made explicitly.</p>
<p>When the URL is opened the HTML is feed to the Beautiful Soup parser. Here after the member call <code>findAll</code> is used for finding the HTML div section identified as &#8220;footer&#8221; (<code>&lt;div id="footer"&gt;</code>). As noted, no further parsing is done, as this page on contains only one footer section, but otherwise Beautiful Soup provides functions like <code>findAllNext</code> and <code>findNextSiblings</code> to iterate through the parse tree (Beautiful Soup is unicode aware, but not using it in this example, so converting the found section to ascii before inputting it to <code>findall</code>).</p>
<p>The resulting output from the search is the hit counter is extracted from this page.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://monzool.net/blog/2007/10/15/html-parsing-with-beautiful-soup/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

