<br>Thank you all for replying. I managed to write a python script. It depends on PyQt4 . I am curious if we have any thing like PyQt4† in Haskell. <br><br>import sys<br>from PyQt4.QtCore import *<br>from PyQt4.QtGui import *<br>
from PyQt4.QtWebKit import *<br><br>#<a href="http://www.rkblog.rk.edu.pl/w/p/webkit-pyqt-rendering-web-pages/">http://www.rkblog.rk.edu.pl/w/p/webkit-pyqt-rendering-web-pages/</a><br>#<a href="http://pastebin.com/xunfQ959">http://pastebin.com/xunfQ959</a><br>
#<a href="http://bharatikunal.wordpress.com/2010/01/31/converting-html-to-pdf-with-python-and-qt/">http://bharatikunal.wordpress.com/2010/01/31/converting-html-to-pdf-with-python-and-qt/</a><br>#<a href="http://www.riverbankcomputing.com/pipermail/pyqt/2009-January/021592.html">http://www.riverbankcomputing.com/pipermail/pyqt/2009-January/021592.html</a><br>
<br>def convertFile( ):<br>††††††††††††††† web.print_( printer )<br>††††††††††††††† print &quot;done&quot;<br>††††††††††††††† QApplication.exit()<br><br><br>if __name__==&quot;__main__&quot;:<br>††††††† url = raw_input(&quot;enter url:&quot;)<br>
††††††† filename = raw_input(&quot;enter file name:&quot;)<br>††††††† app = QApplication( sys.argv )<br>††††††† web = QWebView()<br>††††††† web.load(QUrl( url ))<br>††††††† #web.show()<br>††††††† printer = QPrinter( QPrinter.HighResolution )<br>
††††††† printer.setPageSize( QPrinter.A4 )<br>††††††† printer.setOutputFormat( QPrinter.PdfFormat )<br>††††††† printer.setOutputFileName(† filename + &quot;.pdf&quot; )<br>††††††† QObject.connect( web ,† SIGNAL(&quot;loadFinished(bool)&quot;), convertFile† )<br>
††††††† sys.exit(app.exec_())<br><br><br><div class="gmail_quote">On Fri, Sep 9, 2011 at 11:03 AM, Matti Oinas <span dir="ltr">&lt;<a href="mailto:matti.oinas@gmail.com">matti.oinas@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
The whole wikipedia database can also be downloaded if that is any help.<br>
<br>
<a href="http://en.wikipedia.org/wiki/Wikipedia:Database_download" target="_blank">http://en.wikipedia.org/wiki/Wikipedia:Database_download</a><br>
<br>
There is also text in that site saying &quot;Please do not use a web<br>
crawler to download large numbers of articles. Aggressive crawling of<br>
the server can cause a dramatic slow-down of Wikipedia.&quot;<br>
<br>
Matti<br>
<br>
2011/9/9 Kyle Murphy &lt;<a href="mailto:orclev@gmail.com">orclev@gmail.com</a>&gt;:<br>
<div><div></div><div class="h5">&gt; It&#39;s worth pointing out at this point (as alluded to by Conrad) that what<br>
&gt; you&#39;re attempting might be considered somewhat rude, and possibly slightly<br>
&gt; illegal (depending on the insanity of the legal system in question).<br>
&gt; Automated site scraping (what you&#39;re essentially doing) is generally frowned<br>
&gt; upon by most hosts unless it follows some very specific guidelines, usually<br>
&gt; at a minimum respecting the restrictions specified in the robots.txt file<br>
&gt; contained in the domains root. Furthermore, depending on the type of data in<br>
&gt; question, and if a EULA was agreed to if the site requires an account, doing<br>
&gt; any kind of automated processing might be disallowed. Now, I think wikipedia<br>
&gt; has a fairly lenient policy, or at least I hope it does considering it&#39;s<br>
&gt; community driven, but depending on how much of wikipedia you&#39;re planning on<br>
&gt; crawling you might at the very least consider severly throttling the process<br>
&gt; to keep from sucking up too much bandwidth.<br>
&gt;<br>
&gt; On the topic of how to actually perform that crawl, you should probably<br>
&gt; check out the format of the link provided in the download PDF element. After<br>
&gt; looking at an article (note, I&#39;m basing this off a quick glance at a single<br>
&gt; page) it looks like you should be able to modify the URL provided in the<br>
&gt; &quot;Permanent link&quot; element to generate the PDF link by changing the title<br>
&gt; argument to arttitle, adding a new title argument with the value<br>
&gt; &quot;Special:Book&quot;, and adding the new arguments &quot;bookcmd=render_article&quot; and<br>
&gt; &quot;writer=rl&quot;. For example if the permanent link to the article is:<br>
&gt;<br>
&gt; <a href="http://en.wikipedia.org/w/index.php?title=Shapinsay&amp;oldid=449266269" target="_blank">http://en.wikipedia.org/w/index.php?title=Shapinsay&amp;oldid=449266269</a><br>
&gt;<br>
&gt; Then the PDF URL is:<br>
&gt;<br>
&gt; <a href="http://en.wikipedia.org/w/index.php?arttitle=Shapinsay&amp;oldid=449266269&amp;title=Special:Book&amp;bookcmd=render_article&amp;write=rl" target="_blank">http://en.wikipedia.org/w/index.php?arttitle=Shapinsay&amp;oldid=449266269&amp;title=Special:Book&amp;bookcmd=render_article&amp;write=rl</a><br>

&gt;<br>
&gt; This is all rather hacky as well, and none of it has been tested so it might<br>
&gt; not actually work, although I see no reason why it shouldn&#39;t. It&#39;s also<br>
&gt; fragile, as if wikipedia changes just about anything it could all brake, but<br>
&gt; that&#39;s the risk you run anytime you resort of site scraping.<br>
&gt;<br>
&gt; -R. Kyle Murphy<br>
&gt; --<br>
&gt; Curiosity was framed, Ignorance killed the cat.<br>
&gt;<br>
&gt;<br>
&gt; On Thu, Sep 8, 2011 at 23:40, Conrad Parker &lt;<a href="mailto:conrad@metadecks.org">conrad@metadecks.org</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; On Sep 9, 2011 7:33 AM, &quot;mukesh tiwari&quot; &lt;<a href="mailto:mukeshtiwari.iiitm@gmail.com">mukeshtiwari.iiitm@gmail.com</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Thank your for reply Daniel. Considering my limited knowledge of web<br>
&gt;&gt; &gt; programming and javascript , first i need to simulated the some sort of<br>
&gt;&gt; &gt; browser in my program which will run the javascript and will generate the<br>
&gt;&gt; &gt; pdf. After that i can download the pdf . Is this you mean ? †Is<br>
&gt;&gt; &gt; Network.Browser any helpful for this purpose ? Is there †way to solve this<br>
&gt;&gt; &gt; problem ?<br>
&gt;&gt; &gt; Sorry for †many questions but this †is my first web application program<br>
&gt;&gt; &gt; and i am trying hard to finish it.<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt; Have you tried finding out if simple URLs exist for this, that don&#39;t<br>
&gt;&gt; require Javascript? Does Wikipedia have a policy on this?<br>
&gt;&gt;<br>
&gt;&gt; Conrad.<br>
&gt;&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Fri, Sep 9, 2011 at 4:17 AM, Daniel Patterson<br>
&gt;&gt; &gt; &lt;<a href="mailto:lists.haskell@dbp.mm.st">lists.haskell@dbp.mm.st</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; It looks to me that the link is generated by javascript, so unless you<br>
&gt;&gt; &gt;&gt; can script an actual browser into the loop, it may not be a viable approach.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; On Sep 8, 2011, at 3:57 PM, mukesh tiwari wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt; I tried to use the PDF-generation facilities . I wrote a script which<br>
&gt;&gt; &gt;&gt; &gt; generates the rendering url . When i am pasting rendering url in<br>
&gt;&gt; &gt;&gt; &gt; browser its generating the download file but when i am trying to get<br>
&gt;&gt; &gt;&gt; &gt; the tags , its empty. Could some one please tell me what is wrong<br>
&gt;&gt; &gt;&gt; &gt; with<br>
&gt;&gt; &gt;&gt; &gt; code.<br>
&gt;&gt; &gt;&gt; &gt; Thank You<br>
&gt;&gt; &gt;&gt; &gt; Mukesh Tiwari<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; import Network.HTTP<br>
&gt;&gt; &gt;&gt; &gt; import Text.HTML.TagSoup<br>
&gt;&gt; &gt;&gt; &gt; import Data.Maybe<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; parseHelp :: Tag String -&gt; Maybe String<br>
&gt;&gt; &gt;&gt; &gt; parseHelp ( TagOpen _ y ) = if ( filter ( \( a , b ) -&gt; b ==<br>
&gt;&gt; &gt;&gt; &gt; &quot;Download<br>
&gt;&gt; &gt;&gt; &gt; a PDF version of this wiki page&quot; ) y ) †/= []<br>
&gt;&gt; &gt;&gt; &gt; † † † † † † † † † † † † † †then Just $ †&quot;<a href="http://en.wikipedia.org" target="_blank">http://en.wikipedia.org</a>&quot; ++<br>
&gt;&gt; &gt;&gt; &gt; †( snd $<br>
&gt;&gt; &gt;&gt; &gt; y !! †0 )<br>
&gt;&gt; &gt;&gt; &gt; † † † † † † † † † † † † † † else Nothing<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; parse :: [ Tag String ] -&gt; Maybe String<br>
&gt;&gt; &gt;&gt; &gt; parse [] = Nothing<br>
&gt;&gt; &gt;&gt; &gt; parse ( x : xs )<br>
&gt;&gt; &gt;&gt; &gt; † | isTagOpen x = case parseHelp x of<br>
&gt;&gt; &gt;&gt; &gt; † † † † † † † † † † † †Just s -&gt; Just s<br>
&gt;&gt; &gt;&gt; &gt; † † † † † † † † † † † †Nothing -&gt; parse xs<br>
&gt;&gt; &gt;&gt; &gt; † | otherwise = parse xs<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; main = do<br>
&gt;&gt; &gt;&gt; &gt; † † † x &lt;- getLine<br>
&gt;&gt; &gt;&gt; &gt; † † † tags_1 &lt;- †fmap parseTags $ getResponseBody =&lt;&lt; simpleHTTP<br>
&gt;&gt; &gt;&gt; &gt; ( getRequest x ) --open url<br>
&gt;&gt; &gt;&gt; &gt; † † † let lst = †head . sections ( ~== &quot;&lt;div class=portal id=p-coll-<br>
&gt;&gt; &gt;&gt; &gt; print_export&gt;&quot; ) $ tags_1<br>
&gt;&gt; &gt;&gt; &gt; † † † † † url = †fromJust . parse $ lst †--rendering url<br>
&gt;&gt; &gt;&gt; &gt; † † † putStrLn url<br>
&gt;&gt; &gt;&gt; &gt; † † † tags_2 &lt;- †fmap parseTags $ getResponseBody =&lt;&lt; simpleHTTP<br>
&gt;&gt; &gt;&gt; &gt; ( getRequest url )<br>
&gt;&gt; &gt;&gt; &gt; † † † print tags_2<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt; Haskell-Cafe mailing list<br>
&gt;&gt; &gt;&gt; &gt; <a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
&gt;&gt; &gt;&gt; &gt; <a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; Haskell-Cafe mailing list<br>
&gt;&gt; &gt; <a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
&gt;&gt; &gt; <a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Haskell-Cafe mailing list<br>
&gt;&gt; <a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
&gt;&gt; <a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Haskell-Cafe mailing list<br>
&gt; <a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
&gt; <a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
</div></div>--<br>
/*******************************************************************/<br>
<br>
try {<br>
† †log.trace(&quot;Id=&quot; + request.getUser().getId() + &quot; accesses &quot; +<br>
manager.getPage().getUrl().toString())<br>
} catch(NullPointerException e) {}<br>
<br>
/*******************************************************************/<br>
<br>
This is a real code, but please make the world a bit better place and<br>
donít do it, ever.<br>
<br>
* <a href="http://www.javacodegeeks.com/2011/01/10-tips-proper-application-logging.html" target="_blank">http://www.javacodegeeks.com/2011/01/10-tips-proper-application-logging.html</a> *<br>
</blockquote></div><br>