<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: Mbchandar's Code Snippets</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sat, 26 Jul 2008 01:01:39 GMT</pubDate>
    <description>DZone Snippets: Mbchandar's Code Snippets</description>
    <item>
      <title>tamilbeat.com mp3 crawler</title>
      <link>http://snippets.dzone.com/posts/show/3668</link>
      <description>create a file called links.dat and put the songs link from tamilbeat.com&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/usr/bin/env ruby&lt;br /&gt;require 'net/http'&lt;br /&gt;require 'socket'&lt;br /&gt;                                                                                                                            &lt;br /&gt;Thread.abort_on_exception = true&lt;br /&gt;threads = []&lt;br /&gt;                                                                                                                            &lt;br /&gt;line = File.open("links.dat")&lt;br /&gt;IO.foreach("links.dat") {|line|&lt;br /&gt;  if %r{http://([^/]+)/([^/]+/+.+)}i =~ line&lt;br /&gt;    domain,path = $1, $2&lt;br /&gt;  end&lt;br /&gt;  web = TCPSocket.new(domain,"http")&lt;br /&gt;  web.print "GET /"+path+" HTTP/1.0\n\n"&lt;br /&gt;  web.print "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.2) Gecko/20070220 Firefox/2.0.0.2"&lt;br /&gt;  answer = web.gets(nil)&lt;br /&gt;  web.close&lt;br /&gt;                                                                                                                            &lt;br /&gt;  # for mp3&lt;br /&gt;  arr = answer.scan(/http:\/\/www.+mp3/)&lt;br /&gt;                                                                                                                            &lt;br /&gt;  arr.each do |e|&lt;br /&gt;    threads &lt;&lt; Thread.new(e){|mp3|&lt;br /&gt;      if %r{http://([^/]+)/([^/]+/+.+)/(.+mp3)}i =~ mp3&lt;br /&gt;        website,song,name = $1, $2, $3&lt;br /&gt;      end&lt;br /&gt;      a=Net::HTTP.new(website,80)&lt;br /&gt;      song_get = "/"+song+"/"+name&lt;br /&gt;      puts "Fetching #{website}#{song_get}"&lt;br /&gt;      resp, data = a.get(song_get,nil)&lt;br /&gt;      puts "Got #{website}#{song_get}: #{resp.message}"&lt;br /&gt;      open(name,'w'){|f| f.write(data)}&lt;br /&gt;    }&lt;br /&gt;  end&lt;br /&gt;}&lt;br /&gt;threads.each {|aThread| aThread.join}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 14 Mar 2007 07:53:45 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3668</guid>
      <author>mbchandar (balachandar)</author>
    </item>
  </channel>
</rss>
