Note that there are some explanatory texts on larger screens.

plurals
  1. POCreate classes that grab youtube queries and display information using Python
    primarykey
    data
    text
    <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>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload