Create classes that grab youtube queries and display information using Python
<p>I want to use the urllib module to send HTTP requests and grab data.  I can get the data by using the urlopen() function, but not really sure how to incorporate it into classes. I really need help with the query class to move forward.  From the query I need to pull
• Top Rated
• Top Favorites
• Most Viewed
• Most Recent
• Most Discussed</p>

<p>My issue is, I can't parse the XML document to retrieve this data.  I also don't know how to use classes to do it.  </p>

<p>Here is what I have so far:</p>

<pre><code>import urllib #this allows the programm to sen HTTP requests and to read the responses.

class Query: 
    '''performs the actual HTTP requests and initial parsing to build the Video-
    objects from the response.  It will also calculate the following information
    based on the video and user results.  '''

    def __init__(self, feed_id, max_results): 
        '''Takes as input the type of query (feed_id) and the maximum number of 
        results (max_results) that the query should obtain. The correct HTTP 
        request must be constructed and submitted. The results are converted 
        into Video objects, which are stored within this class.
        '''

        self.feed = feed_id
        self.max = max_results


        top_rated = urllib.urlopen("http://gdata.youtube.com/feeds/api/standardfeeds/top_rated")
        results_str = top_rated.read()
        splittedlist = results_str.split('&lt;entry')
        top_rated.close()


    def __str__(self):
        ''' prints out the information on each video and Youtube user. '''
        pass


class Video:
    pass


class User:
    pass



#main function:  This handles all the user inputs and stuff.
def main():
    useinput = raw_input('''Welcome to the YouTube text-based query application.
You can select a popular feed to perform a query on and view statistical 
information about the related videos and users.

1) today
2) this week
3) this month 
4) since youtube started

Please select a time(or 'Q' to quit):''')
    secondinput = raw_input("\n1) Top Rated\n2) Top Favorited\n3) Most Viewed\n4) Most Recent\n5) Most     Discussed\n\nPlease select a feed (or 'Q' to quit):")
    thirdinput = raw_input("Enter the maximum number of results to obtain:")

main()

toplist = []
top_rated = urllib.urlopen("http://gdata.youtube.com/feeds/api/standardfeeds/top_rated")
result_str = top_rated.read()
top_rated.close()
splittedlist = result_str.split('&lt;entry')
results_str = top_rated.read()



x=splittedlist[1].find('title')#find the title index
splittedlist[1][x: x+75]#string around the title (/ marks the end of the title)
w=splittedlist[1][x: x+75].find("&gt;")#gives you the start index
z=splittedlist[1][x: x+75].find("&lt;")#gives you the end index
titles = splittedlist[1][x: x+75][w+1:z]#gives you the title!!!!
toplist.append(titles)
print toplist
</code></pre>
