This example covers some basic functionality of urllib2 - opening a website, reading from it and finding its title.<br><br><br>diff --git a/data/GSOC examples/Opening websites b/data/GSOC examples/Opening we<br>
new file mode 100644<br>
index 0000000..97ee16f<br>
--- /dev/null<br>
+++ b/data/GSOC examples/Opening websites       <br>
@@ -0,0 +1,64 @@<br>
+# This example demonstrates how urllib2 can be used to open websites and read<br>
+# some data from them.<br>
+<br>
+import urllib2<br>
+<br>
+# define a function which will open a bunch of links we give it in a list<br>
+def open_sites(links):<br>
+    sites = []<br>
+    for url in urls:<br>
+        print &quot;Opening: &quot; + url<br>
+        # try to open that site<br>
+        try:<br>
+            site = urllib2.urlopen(url)<br>
+        except:<br>
+            # Does an error occur with any of the default urls? <br>
+            # Practice: If so, could you fix it?<br>
+            print &quot;An error has occured, skipping &quot; + url<br>
+            print<br>
+            raw_input(&quot;...press enter key to continue...&quot;)<br>
+            continue<br>
+        if site.geturl() != url:<br>
+            print &quot;Careful! Site &quot; + url + &quot; has redirected you to &quot; + site.get<br>
+        print &quot;Site &quot; + site.geturl() + &quot; is now open.&quot;<br>
+        print<br>
+        sites.append(site)<br>
+        raw_input(&quot;...press enter key to continue...&quot;)<br>
+        print<br>
+    return sites<br>
+<br>
+url1 = &quot;<a href="http://www.google.com">http://www.google.com</a>&quot;<br>
+url2 = &quot;<a href="http://www.sugarlabs.org">http://www.sugarlabs.org</a>&quot;<br>
+url3 = &quot;<a href="http://www.wikipedia.org">www.wikipedia.org</a>&quot;<br>
+urls = [url1, url2, url3]<br>
+<br>
+sites = open_sites(urls)<br>
+<br>
+print<br>
+print &quot;Let&#39;s read those sites and find their titles.&quot;<br>
+print<br>
+raw_input(&quot;...press enter key to continue...&quot;)<br>
+print<br>
+<br>
+for site in sites:<br>
+    site_content = site.read()<br>
+    title_at = site_content.find(&quot;&lt;title&gt;&quot;) + 7<br>
+    print &quot;The title of site at &quot; + site.geturl() + &quot; begins at its index &quot; + s<br>
+    title_ends = site_content.find(&quot;&lt;/title&gt;&quot;, title_at)<br>
+    title = site_content[title_at:title_ends]<br>
+    # In Python, \ is the so-called &quot;escape&quot; character. Since some characters h<br>
+    # special meanings, like &quot; or &#39; opening and closing a string, we have to te<br>
+    # the interpreter to ignore such meanings when we wish to put those precise<br>
+    # characters in a string (or print them). In the following line, we wish to<br>
+    # print the &quot; character so we &quot;escape&quot; it - by putting \ in before it.<br>
+    # Practice: What would we have to do to print an escape character \ ? <br>
+    print &quot;The title is: \&quot;&quot; + title + &quot;\&quot;&quot;<br>
+    print<br>
+    # An index of -1 refers to the first element from the end. Thus, this <br>
+    # comparison checks whether the current element is the last one.<br>
+    # Practice: Why would we want that?<br>
+    if site == sites[-1]:<br>
+        raw_input(&quot;...press enter to finish..:&quot;)<br>
+    else:<br>
+        raw_input(&quot;...press enter key to continue...&quot;)<br>
+    print<br>
<br>