<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>t/get-bills.t</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -3,13 +3,17 @@ use FindBin;
 use lib &quot;$FindBin::Bin/../lib&quot;;
 use Net::Parliament;
 use Data::Dumper;
-use Net::Parliament::Member;
 
 my $parl = Net::Parliament-&gt;new();
 
-my $members = $parl-&gt;Get_members();
-for my $member (@$members) {
-    warn Dumper $member;
-    last;
+if (0) {
+    my $members = $parl-&gt;Get_members();
+    for my $member (@$members) {
+        warn Dumper $member;
+        last;
+    }
 }
 
+for my $bill (@{ $parl-&gt;Get_bills(parl =&gt; 40, session =&gt; 2) }) {
+    warn Dumper $bill;
+}</diff>
      <filename>bin/scrape-parl</filename>
    </modified>
    <modified>
      <diff>@@ -2,6 +2,7 @@ package Net::Parliament;
 use Moose;
 use Net::Parliament::UserAgent;
 use HTML::TableExtract qw/tree/;
+use HTML::TreeBuilder;
 
 =head1 NAME
 
@@ -30,8 +31,7 @@ and then parse it into hashrefs.
 =cut
 
 has '_members_base_url' =&gt; (
-    is      =&gt; 'ro',
-    isa     =&gt; 'Str',
+    is      =&gt; 'ro', isa =&gt; 'Str',
     default =&gt; 'http://webinfo.parl.gc.ca/MembersOfParliament/',
 );
 
@@ -44,9 +44,19 @@ has 'members_html_url' =&gt; (
     },
 );
 
+has '_bills_base_domain' =&gt; (
+    is      =&gt; 'ro', isa =&gt; 'Str',
+    default =&gt; 'http://www2.parl.gc.ca',
+);
+
+has '_bills_base_url' =&gt; (
+    is      =&gt; 'ro', isa =&gt; 'Str',
+    default =&gt; 'http://www2.parl.gc.ca/HouseBills/billsgovernment.aspx?',
+);
+
 has 'ua' =&gt; (
     is      =&gt; 'ro',
-    isa     =&gt; 'Net::Parliament::UserAgent',
+    isa     =&gt; 'Object',
     handles =&gt; ['get'],
     default =&gt; sub { Net::Parliament::UserAgent-&gt;new },
 );
@@ -105,6 +115,75 @@ sub Get_members {
     return \@members;
 }
 
+=head2 Get_bills()
+
+This method returns an arrayref containing a hashref for each
+Government Bill raised in parliament.  
+
+=cut
+
+sub Get_bills {
+    my $self = shift;
+    my %opts = @_;
+
+    die &quot;Must specify which Parliament&quot; unless $opts{parl};
+    die &quot;Must specify which Session&quot;    unless $opts{session};
+
+    my $url = $self-&gt;_bills_base_url . &quot;Parl=$opts{parl}&quot;
+        . &quot;&amp;Ses=$opts{session}&quot;;
+    my $html = $self-&gt;get($url);
+    my $block_oh_html = &lt;&lt;EOT;
+&lt;div class=&quot;BillBlock BillBlockOdd&quot; id=&quot;divBillBlockC2&quot;&gt;
+ &lt;span class=&quot;BillNumberCell&quot;&gt;C-2&lt;/span&gt;
+ &lt;div class=&quot;BillSummary&quot;&gt;
+  &lt;span class=&quot;BillLongText&quot;&gt;An Act to amend the Criminal Code and to make consequential amendments to other Acts&lt;/span&gt;
+  &lt;div class=&quot;BillSponsor&quot;&gt;&lt;a class=&quot;WebOption&quot; onclick=&quot;GetWebOptions('PRISM','Affiliation',105824,'1');return false;&quot; onmouseout=&quot;inDiv=0;setTimeout('TimeoutHide()',1000);return false;&quot; href=&quot;/HousePublications/GetWebOptionsCallBack.aspx?SourceSystem=PRISM&amp;amp;ResourceType=Affiliation&amp;amp;ResourceID=105824&amp;amp;language=1&amp;amp;DisplayMode=2&quot;&gt;The Minister of Justice&lt;/a&gt;&lt;/div&gt;
+  &lt;div&gt;
+   &lt;div&gt;&lt;a class=&quot;BillVersionLink&quot; href=&quot;/HouseBills/StaticLinkRedirector.aspx?Language=e&amp;amp;LinkTitle=%28C-2%29%20Legislative%20Summary&amp;amp;RedirectUrl=%2fSites%2fLOP%2fLEGISINFO%2findex.asp%3fList%3dls%26Language%3dE%26Query%3d5273%26Session%3d15&amp;amp;RefererUrl=X&amp;amp;StatsEnabled=true&quot;&gt;Legislative Summary&lt;/a&gt;&lt;/div&gt;
+   &lt;div&gt;&lt;a class=&quot;BillVersionLink&quot; href=&quot;/HousePublications/Publication.aspx?DocId=3078412&amp;amp;Language=e&amp;amp;Mode=1&quot;&gt;First Reading&lt;/a&gt;&lt;/div&gt;
+   &lt;div&gt;&lt;a class=&quot;BillVersionLink&quot; href=&quot;/HousePublications/Publication.aspx?DocId=3151626&amp;amp;Language=e&amp;amp;Mode=1&quot;&gt;As passed by the House of Commons&lt;/a&gt;&lt;/div&gt;
+   &lt;div&gt;&lt;a class=&quot;BillVersionLink&quot; href=&quot;/HousePublications/Publication.aspx?DocId=3320180&amp;amp;Language=e&amp;amp;Mode=1&quot;&gt;Royal Assent&lt;/a&gt;&lt;/div&gt;
+   &lt;div&gt;&lt;a class=&quot;BillVersionLink&quot; href=&quot;/housebills/BillVotes.aspx?Language=e&amp;amp;Mode=1&amp;amp;Parl=39&amp;amp;Ses=2&amp;amp;Bill=C2&quot;&gt;Votes&lt;/a&gt;&lt;/div&gt;
+  &lt;/div&gt;
+ &lt;/div&gt;
+&lt;/div&gt;
+EOT
+
+    my $tree = HTML::TreeBuilder-&gt;new_from_content($html);
+    my @billblocks = $tree-&gt;look_down(class =&gt; qr/\bBillBlock\b/);
+    my @bills;
+    for my $b (@billblocks) {
+        my $bill = {};
+        $bill-&gt;{number} = $b-&gt;look_down(
+            class =&gt; 'BillNumberCell')-&gt;content-&gt;[0];
+        $bill-&gt;{summary} = $b-&gt;look_down(
+            class =&gt; 'BillLongText')-&gt;content-&gt;[0];
+        $bill-&gt;{sponsor} = $b-&gt;look_down(
+            class =&gt; 'BillSponsor')-&gt;content-&gt;[0];
+
+        if (ref($bill-&gt;{sponsor})) {
+            my $bs = $bill-&gt;{sponsor};
+            $bill-&gt;{sponsor} = $bs-&gt;content-&gt;[0];
+            my $url = $bs-&gt;look_down(
+                _tag =&gt; 'a')-&gt;attr('href');
+            if ($url =~ m/ResourceID=(\d+)/) {
+                $bill-&gt;{sponsor_id} = $1;
+            }
+        }
+
+        my @links = $b-&gt;look_down(class =&gt; 'BillVersionLink');
+        for my $link (@links) {
+            my $url = $self-&gt;_bills_base_domain . $link-&gt;attr('href');
+            $url =~ s/\s/%20/g;
+            push @{ $bill-&gt;{links} }, { $link-&gt;content-&gt;[0] =&gt; $url };
+        }
+
+        push @bills, $bill;
+    }
+    return \@bills;
+
+}
+
 sub _load_member {
     my $self       = shift;
     my $member     = shift;</diff>
      <filename>lib/Net/Parliament.pm</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>t/boilerplate.t</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>8c678be3525c03a3693fc81813afeca0e9b6c3b0</id>
    </parent>
  </parents>
  <author>
    <name>Luke Closs</name>
    <email>gravatar@5thplane.com</email>
  </author>
  <url>http://github.com/lukec/cpan-net-parliament/commit/f03d2168a9d07dcfc40a401787b94eccc487dbbb</url>
  <id>f03d2168a9d07dcfc40a401787b94eccc487dbbb</id>
  <committed-date>2009-05-20T23:07:31-07:00</committed-date>
  <authored-date>2009-05-20T23:07:31-07:00</authored-date>
  <message>Add Get_bills() code and tests</message>
  <tree>cb23e41f9ce92a91c7abc103a5a38ce66a8c7c2a</tree>
  <committer>
    <name>Luke Closs</name>
    <email>gravatar@5thplane.com</email>
  </committer>
</commit>
