  
<div id="snippet_414" class="snippet">
  <h2><a href="/snippets/414-How-to-scrape-a-Amazon-Listmania-list-with-Hpricot-and-Ruby" title="How to scrape a Amazon Listmania list with Hpricot and Ruby - Ruby - amazon, hpricot, scrape">How to scrape a Amazon Listmania list with Hpricot and Ruby</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/124-Ruby">
      Ruby</a> posted 3 months ago by christian
          
  </div>

  <div class="body">
    <p><pre class="active4d"><span class="line-numbers">   1 </span> html <span class="Operator">=</span>  <span class="FunctionName">open</span>(<span class="String"><span class="String">'</span>http://www.amazon.com/Nick-Hornby-and-Company/lm/1X1GGDBXARHZ6/ref=cm_lm_toplist_fullview_1<span class="String">'</span></span>)
<span class="line-numbers">   2 </span> 
<span class="line-numbers">   3 </span> page <span class="Operator">=</span> <span class="Variable">Hpricot</span>(html)
<span class="line-numbers">   4 </span> 
<span class="line-numbers">   5 </span> xpath <span class="Operator">=</span> <span class="String"><span class="String">&quot;</span>td[@class='listItem']//input[@name='asin.1']<span class="String">&quot;</span></span>
<span class="line-numbers">   6 </span> 
<span class="line-numbers">   7 </span> page.<span class="FunctionName">search</span>(xpath).<span class="FunctionName">each</span> <span class="Keyword">do </span>|<span class="Variable">book</span>|
<span class="line-numbers">   8 </span>   puts book[<span class="String"><span class="String">'</span>value<span class="String">'</span></span>]
<span class="line-numbers">   9 </span> <span class="Keyword">end</span>
</pre></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/865-amazon">amazon</a>, <a href="/tags/366-hpricot">hpricot</a>, <a href="/tags/427-scrape">scrape</a>
    
    
  </div>
</div>



  
<div id="snippet_388" class="snippet">
  <h2><a href="/snippets/388-How-to-fix-issues-with-missing-gem-specifications" title="How to fix issues with missing gem specifications - Shell Script (Bash) - hpricot, gem, unpack, rails">How to fix issues with missing gem specifications</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/131-Shell-Script-Bash-">
      Shell Script (Bash)</a> posted 5 months ago by christian
          
  </div>

  <div class="body">
    <p>I was getting this error after unpacking hpricot with <strong>gem unpack hpricot</strong>. I also tried <strong>rake gems:unpack hpricot</strong> but it did nothing&#8230;<br />
<pre class="active4d"><span class="line-numbers">   1 </span> config.gem: Unpacked gem hpricot-0.8.1 <span class="Keyword">in</span> vendor/gems has no specification file. Run <span class="String"><span class="String">'</span>rake gems:refresh_specs<span class="String">'</span></span> to fix this. 
</pre></p>
<p>The rake gems:refresh_specs command doesn&#8217;t work, and appears to have been a temporary workaround, so to fix this error I did this:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> cd vendor/gems/hpricot-0.8.1
<span class="line-numbers">   2 </span> gem specification hpricot <span class="Operator">&gt;</span> .specification
</pre></p>
<p>I had this issue with Rails 2.3.4.</p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/366-hpricot">hpricot</a>, <a href="/tags/325-gem">gem</a>, <a href="/tags/826-unpack">unpack</a>, <a href="/tags/9-rails">rails</a>
    
    
  </div>
</div>



  
<div id="snippet_172" class="snippet">
  <h2><a href="/snippets/172-Hpricot-s-inner-text-doesn-t-handle-HTML-entities-correctly" title="Hpricot's inner_text doesn't handle HTML entities correctly - Ruby - hpricot, inner_text, problem, bug">Hpricot's inner_text doesn't handle HTML entities correctly</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/124-Ruby">
      Ruby</a> posted about 1 year ago by christian
          
  </div>

  <div class="body">
    <p>Hpricot&#8217;s inner_text method is fubar and doesn&#8217;t handle  HTML  entities correctly, instead you&#8217;ll see questionmarks in the output. To fix this replace calls to Hpricot&#8217;s inner_text with a call to the following method (or Monkey patch Hpricot):
<pre class="active4d"><span class="line-numbers">   1 </span> <span class="Keyword">require</span> <span class="String"><span class="String">'</span>rubygems<span class="String">'</span></span>
<span class="line-numbers">   2 </span> <span class="Keyword">require</span> <span class="String"><span class="String">'</span>htmlentities<span class="String">'</span></span>
<span class="line-numbers">   3 </span> 
<span class="line-numbers">   4 </span>   <span class="Keyword">def</span> <span class="FunctionName">inner_text</span>(<span class="FunctionArgument">node</span>)
<span class="line-numbers">   5 </span>      text <span class="Operator">=</span> node.<span class="FunctionName">innerHTML</span>.<span class="FunctionName">gsub</span>(<span class="String"><span class="String">%r{</span>&lt;.*?&gt;<span class="String">}</span></span>, <span class="String"><span class="String">&quot;</span><span class="String">&quot;</span></span>).<span class="FunctionName">strip</span>
<span class="line-numbers">   6 </span>      <span class="Variable">HTMLEntities</span>.<span class="FunctionName">new</span>.<span class="FunctionName">decode</span>(text)
<span class="line-numbers">   7 </span>   <span class="Keyword">end</span>
</pre></p>


	<p>Remember to install the htmlentities gem:</p>


	<p><pre class="active4d"><span class="line-numbers">   1 </span> sudo gem install htmlentities
</pre></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/366-hpricot">hpricot</a>, <a href="/tags/431-inner-text">inner_text</a>, <a href="/tags/432-problem">problem</a>, <a href="/tags/212-bug">bug</a>
    
    
  </div>
</div>



  
<div id="snippet_147" class="snippet">
  <h2><a href="/snippets/147-Scraping-Yahoo-Finance-with-Ruby-and-Hpricot" title="Scraping Yahoo! Finance with Ruby and Hpricot - CSS - yahoo, finance, ruby, hpricot">Scraping Yahoo! Finance with Ruby and Hpricot</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/26-CSS">
      CSS</a> posted over 2 years ago by christian
          
  </div>

  <div class="body">
    <p>This code extracts the numbers from the Fund operations table on the  BLV  fund&#8217;s <a href="http://finance.yahoo.com/q/pr?s=BLV">Profile page</a> at Yahoo! Finance. 
<pre class="active4d"><span class="line-numbers">   1 </span> require 'rubygems'
<span class="line-numbers">   2 </span> require 'hpricot'
<span class="line-numbers">   3 </span> require 'open-uri'
<span class="line-numbers">   4 </span> 
<span class="line-numbers">   5 </span> page = Hpricot(open('http://finance<span class="TagAttribute"><span class="TagAttribute">.</span>yahoo</span><span class="TagAttribute"><span class="TagAttribute">.</span>com</span>/<span class="TagName">q</span>/pr?s=BLV'))
<span class="line-numbers">   6 </span> 
<span class="line-numbers">   7 </span> fund_operations = []
<span class="line-numbers">   8 </span> page<span class="TagAttribute"><span class="TagAttribute">.</span>search</span>( &quot;//<span class="TagName">table</span>[@class='yfnc_datamodoutline1']&quot; )<span class="TagAttribute"><span class="TagAttribute">.</span>each</span> do |row|
<span class="line-numbers">   9 </span>   row<span class="TagAttribute"><span class="TagAttribute">.</span>search</span>( &quot;//<span class="TagName">td</span>[@class='yfnc_datamoddata1']&quot;)<span class="TagAttribute"><span class="TagAttribute">.</span>each</span> do |data|
<span class="line-numbers">  10 </span>     fund_operations &lt;&lt; data<span class="TagAttribute"><span class="TagAttribute">.</span>inner_html</span>
<span class="line-numbers">  11 </span>   end
<span class="line-numbers">  12 </span> end
<span class="line-numbers">  13 </span> 
<span class="line-numbers">  14 </span> pp fund_operations
</pre></p>


	<p>The output from this script is:
<pre class="active4d"><span class="line-numbers">   1 </span> [&quot;N/A&quot;, &quot;N/A&quot;, &quot;55%&quot;, &quot;72&quot;, &quot;85.05M&quot;, &quot;1.71B&quot;]
</pre></p>


	<p>Note that you could also use Scrubyt for this. Here&#8217;s a snippet that explains how to use Scrubyt to scrape web pages: <a href="http://snippets.aktagon.com/tags/218-scrubyt">Scraping Google search results with Scrubyt and Ruby</a></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/364-yahoo">yahoo</a>, <a href="/tags/365-finance">finance</a>, <a href="/tags/8-ruby">ruby</a>, <a href="/tags/366-hpricot">hpricot</a>
    
    
  </div>
</div>



  
<div id="snippet_90" class="snippet">
  <h2><a href="/snippets/90-Scraping-Google-search-results-with-Scrubyt-and-Ruby" title="Scraping Google search results with Scrubyt and Ruby - Ruby - web, scraping, google, scrubyt, ruby, gotcha, hpricot, todelete, obsolete">Scraping Google search results with Scrubyt and Ruby</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/124-Ruby">
      Ruby</a> posted over 2 years ago by christian
          
  </div>

  <div class="body">
    <p>Note that these instructions don&#8217;t work with the latest Scrubyt version&#8230;</p>
<p>Scrubyt is a Ruby library that allows you to easily scrape the contents of any site.</p>
<h2>First install Scrubyt:</h2>
<p><pre class="active4d"><span class="line-numbers">   1 </span> $ sudo gem install mechanize hpricot parsetree ruby2ruby scrubyt
</pre></p>
<p>You also need to install ReadLine version 3.6.3:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> sudo gem install <span class="Operator">-</span>v <span class="Number">3.6</span>.<span class="Number">3</span> <span class="Variable">RubyInline</span>
</pre></p>
<p>If you install the wrong RubyInline version or have multiple versions installed, you&#8217;ll get the following error:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> <span class="String"><span class="String">/</span></span><span class="String">usr</span><span class="String"><span class="String">/</span></span>lib<span class="Operator">/</span>ruby<span class="Operator">/</span><span class="Number">1.8</span><span class="Operator">/</span>rubygems.<span class="FunctionName">rb</span>:<span class="Number">207</span><span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>in</span> <span class="String"><span class="String">`</span>activate': can't activate RubyInline (= 3.6.3), already activated RubyInline-3.6.6] (Gem::Exception)</span>
<span class="line-numbers">   2 </span> <span class="String">       from /usr/lib/ruby/1.8/rubygems.rb:225:in <span class="String">`</span></span>activate<span class="String"><span class="String">'</span></span>
<span class="line-numbers">   3 </span> <span class="String">       from /usr/lib/ruby/1.8/rubygems.rb:224:in `each<span class="String">'</span></span>
<span class="line-numbers">   4 </span>        from <span class="Operator">/</span>usr<span class="Operator">/</span>lib<span class="Operator">/</span>ruby<span class="Operator">/</span><span class="Number">1.8</span><span class="Operator">/</span>rubygems.<span class="FunctionName">rb</span>:<span class="Number">224</span><span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>in</span> <span class="String"><span class="String">`</span>activate'</span>
<span class="line-numbers">   5 </span> <span class="String">       from /usr/lib/ruby/1.8/rubygems/custom_require.rb:32:in <span class="String">`</span></span><span class="Keyword">require</span><span class="String"><span class="String">'</span></span>
<span class="line-numbers">   6 </span> <span class="String">       from t2:2</span>
</pre></p>
<p>To fix it first uninstall the latest version, and keep only version 3.6.3:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> sudo gem uninstall <span class="Variable">RubyInline</span>
<span class="line-numbers">   2 </span> 
<span class="line-numbers">   3 </span> <span class="Variable">Select</span> <span class="Variable">RubyGem</span> to uninstall:
<span class="line-numbers">   4 </span>  <span class="Number">1</span>. <span class="Variable">RubyInline</span><span class="Operator">-</span><span class="Number">3.6</span>.<span class="Number">3</span>
<span class="line-numbers">   5 </span>  <span class="Number">2</span>. <span class="Variable">RubyInline</span><span class="Operator">-</span><span class="Number">3.6</span>.<span class="Number">6</span>
<span class="line-numbers">   6 </span>  <span class="Number">3</span>. <span class="Variable">All</span> versions
<span class="line-numbers">   7 </span> <span class="Operator">&gt;</span> <span class="Number">2</span>
</pre></p>
<h2>Scraping Google search results</h2>
<p>Then run this to Scrape the first two pages of the Google results for <strong>ruby</strong>:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> <span class="Keyword">require</span> <span class="String"><span class="String">'</span>rubygems<span class="String">'</span></span>
<span class="line-numbers">   2 </span> <span class="Keyword">require</span> <span class="String"><span class="String">'</span>scrubyt<span class="String">'</span></span>
<span class="line-numbers">   3 </span> 
<span class="line-numbers">   4 </span> <span class="LineComment"><span class="LineComment">#</span> See http://scrubyt.org/example-specification-from-the-page-known-issues-and-pitfalls/</span>
<span class="line-numbers">   5 </span> 
<span class="line-numbers">   6 </span> <span class="LineComment"><span class="LineComment">#</span> Create a learning extractor</span>
<span class="line-numbers">   7 </span> data <span class="Operator">=</span> <span class="LibraryClassType">Scrubyt</span>::<span class="FunctionName">Extractor</span>.<span class="FunctionName">define</span> <span class="Keyword">do</span>
<span class="line-numbers">   8 </span>   <span class="FunctionName">fetch</span>(<span class="String"><span class="String">'</span>http://www.google.com/<span class="String">'</span></span>)
<span class="line-numbers">   9 </span>   fill_textfield <span class="String"><span class="String">'</span>q<span class="String">'</span></span>, <span class="String"><span class="String">'</span>ruby<span class="String">'</span></span>
<span class="line-numbers">  10 </span>   submit
<span class="line-numbers">  11 </span>   
<span class="line-numbers">  12 </span> <span class="LineComment">  <span class="LineComment">#</span> Teach Scrubyt what we want to retrieve</span>
<span class="line-numbers">  13 </span> <span class="LineComment">  <span class="LineComment">#</span> In this case we want Scruby to find all search results</span>
<span class="line-numbers">  14 </span> <span class="LineComment">  <span class="LineComment">#</span> and &quot;Ruby Programming Language&quot; happens to be the first </span>
<span class="line-numbers">  15 </span> <span class="LineComment">  <span class="LineComment">#</span> link in the result list. Change &quot;Ruby Programming Language&quot; </span>
<span class="line-numbers">  16 </span> <span class="LineComment">  <span class="LineComment">#</span> to whatever you want Scruby to find.</span>
<span class="line-numbers">  17 </span>   link <span class="Keyword">do</span>
<span class="line-numbers">  18 </span>     name  <span class="String"><span class="String">&quot;</span>Ruby Programming Language<span class="String">&quot;</span></span>
<span class="line-numbers">  19 </span>     url   <span class="String"><span class="String">&quot;</span>href<span class="String">&quot;</span></span>, <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>type</span> =&gt; <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>attribute</span>
<span class="line-numbers">  20 </span>   <span class="Keyword">end</span>
<span class="line-numbers">  21 </span>   
<span class="line-numbers">  22 </span> <span class="LineComment">  <span class="LineComment">#</span> Click next until we're on the second page.</span>
<span class="line-numbers">  23 </span>   next_page <span class="String"><span class="String">&quot;</span>Next<span class="String">&quot;</span></span>, <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>limit</span> =&gt; <span class="Number">2</span>
<span class="line-numbers">  24 </span> <span class="Keyword">end</span>
<span class="line-numbers">  25 </span> 
<span class="line-numbers">  26 </span> <span class="LineComment"><span class="LineComment">#</span> Print out what Scruby found</span>
<span class="line-numbers">  27 </span> puts data.<span class="FunctionName">to_xml</span> 
<span class="line-numbers">  28 </span> 
<span class="line-numbers">  29 </span> puts <span class="String"><span class="String">&quot;</span>Your production scraper has been created: data_extractor_export.rb.<span class="String">&quot;</span></span>
<span class="line-numbers">  30 </span> 
<span class="line-numbers">  31 </span> <span class="LineComment"><span class="LineComment">#</span> Export the production version of the scraper</span>
<span class="line-numbers">  32 </span> data.<span class="FunctionName">export</span>(<span class="Variable">__FILE__</span>)
</pre></p>
<h2>Learning Extractor vs Production extractor</h2>
<p>Note that this example uses the <a href="http://scrubyt.org/example-specification-from-the-page-known-issues-and-pitfalls/">Learning Extractor</a> functionality of Scrubyt.</p>
<p>The production extractor is generated with the last line:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> data.<span class="FunctionName">export</span>(<span class="Variable">__FILE__</span>)
</pre></p>
<p>If you open the production extractor in an editor you&#8217;ll see that it uses XPath queries to extract the content:<br />
<pre class="active4d"><span class="line-numbers">   1 </span> <span class="FunctionName">link</span>(<span class="String"><span class="String">&quot;</span>/html/body/div/div/div/h2<span class="String">&quot;</span></span>, { <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>generalize</span> =&gt; <span class="BuiltInConstant">true</span> }) <span class="Keyword">do</span>
<span class="line-numbers">   2 </span>     <span class="FunctionName">name</span>(<span class="String"><span class="String">&quot;</span>/a[1]<span class="String">&quot;</span></span>)
<span class="line-numbers">   3 </span>     <span class="FunctionName">url</span>(<span class="String"><span class="String">&quot;</span>href<span class="String">&quot;</span></span>, { <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>type</span> =&gt; <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>attribute</span> })
<span class="line-numbers">   4 </span>   <span class="Keyword">end</span>
</pre></p>
<h2>Finding the correct XPath</h2>
<p>The learning mode is pretty good at finding the XPath of <span class="caps">HTML</span> elements, but if you have difficulties getting Scrubyt to extract exactly what you want, simply install Firebug and use the Inspect feature to select the item you want to extract the value from. Then right-click on it in the Firebug window and choose Copy XPath.</p>
<p>Note that there&#8217;s a <a href="http://groups.google.com/group/firebug/browse_thread/thread/b3f9b0893c1ad7e1">gotcha</a> when copying the XPath of an element with Firebug. Firebug uses Firefox&#8217;s internal and normalized <span class="caps">DOM</span> model, which might not match match the real-world <span class="caps">HTML</span> structure. For example the tbody tag is usually added by Firefox/Firebug, and should be removed if it isn&#8217;t in the <span class="caps">HTML</span>.</p>
<p>Another option that I haven&#8217;t tried myself is to use the <a href="https://addons.mozilla.org/en-US/firefox/addon/1192">XPather</a> extension.</p>
<h2>Using hpricot to find the XPath</h2>
<p>If you&#8217;re really having problems finding the right XPath of an element, you can also use HPricot to find it. In this example the code prints out the XPath to all table columns containing the text 51,999:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> <span class="Keyword">require</span> <span class="String"><span class="String">'</span>rexml/document<span class="String">'</span></span>
<span class="line-numbers">   2 </span> <span class="Keyword">require</span> <span class="String"><span class="String">'</span>hpricot<span class="String">'</span></span>
<span class="line-numbers">   3 </span> <span class="Keyword">require</span> <span class="String"><span class="String">'</span>open-uri<span class="String">'</span></span>
<span class="line-numbers">   4 </span> 
<span class="line-numbers">   5 </span> url <span class="Operator">=</span> <span class="String"><span class="String">&quot;</span>http://xyz<span class="String">&quot;</span></span>
<span class="line-numbers">   6 </span> 
<span class="line-numbers">   7 </span> page <span class="Operator">=</span> <span class="Variable">Hpricot</span>(<span class="FunctionName">open</span>(url,
<span class="line-numbers">   8 </span> 	<span class="String"><span class="String">'</span>User-Agent<span class="String">'</span></span> =&gt; <span class="String"><span class="String">'</span>Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12<span class="String">'</span></span>,
<span class="line-numbers">   9 </span>         <span class="String"><span class="String">'</span>Referer<span class="String">'</span></span>    =&gt; <span class="String"><span class="String">'</span>http://xyz<span class="String">'</span></span>
<span class="line-numbers">  10 </span>     	))
<span class="line-numbers">  11 </span> 
<span class="line-numbers">  12 </span> page.<span class="FunctionName">search</span>( <span class="String"><span class="String">&quot;</span>//td:contains('51,992')<span class="String">&quot;</span></span> ).<span class="FunctionName">each</span> <span class="Keyword">do </span>|<span class="Variable">row</span>|
<span class="line-numbers">  13 </span>   puts row.<span class="FunctionName">xpath</span>()
<span class="line-numbers">  14 </span> <span class="Keyword">end</span>
</pre></p>
<p>The output from the above snippet looks something like this:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> <span class="String"><span class="String">/</span></span><span class="String">html</span><span class="String"><span class="String">/</span></span>body<span class="Operator">/</span>table[<span class="Number">2</span>]<span class="Operator">/</span>tr[<span class="Number">2</span>]<span class="Operator">/</span>td[<span class="Number">3</span>]
<span class="line-numbers">   2 </span> <span class="String"><span class="String">/</span></span><span class="String">html</span><span class="String"><span class="String">/</span></span>body<span class="Operator">/</span>table[<span class="Number">2</span>]<span class="Operator">/</span>tr[<span class="Number">2</span>]<span class="Operator">/</span>td[<span class="Number">3</span>]<span class="Operator">/</span>table[<span class="Number">4</span>]<span class="Operator">/</span>tr[<span class="Number">1</span>]<span class="Operator">/</span>td[<span class="Number">1</span>]
<span class="line-numbers">   3 </span> <span class="String"><span class="String">/</span></span><span class="String">html</span><span class="String"><span class="String">/</span></span>body<span class="Operator">/</span>table[<span class="Number">2</span>]<span class="Operator">/</span>tr[<span class="Number">2</span>]<span class="Operator">/</span>td[<span class="Number">3</span>]<span class="Operator">/</span>table[<span class="Number">4</span>]<span class="Operator">/</span>tr[<span class="Number">1</span>]<span class="Operator">/</span>td[<span class="Number">1</span>]<span class="Operator">/</span>table[<span class="Number">1</span>]<span class="Operator">/</span>tr[<span class="Number">2</span>]<span class="Operator">/</span>td[<span class="Number">2</span>]
</pre></p>
<p>Note that sometimes I find that hrpicot is easier to use than Scrubyt, so use what&#8217;s best for you.</p>
<h2>Miscellaneous problems</h2>
<p>The following problem can be solved by following the instructions found <a href="http://agora.scrubyt.org/forums/3/topics/270">here</a>:<br />
<pre class="active4d"><span class="line-numbers">   1 </span> <span class="Variable">Your</span> production scraper has been created: data_extractor_export.<span class="FunctionName">rb</span>.
<span class="line-numbers">   2 </span> <span class="String"><span class="String">/</span></span><span class="String">var</span><span class="String"><span class="String">/</span></span>lib<span class="Operator">/</span>gems<span class="Operator">/</span><span class="Number">1.8</span><span class="Operator">/</span>gems<span class="Operator">/</span><span class="Variable">ParseTreeReloaded</span><span class="Operator">-</span><span class="Number">0.0</span>.<span class="Number">1</span><span class="Operator">/</span>lib<span class="Operator">/</span>parse_tree_reloaded.<span class="FunctionName">rb</span>:<span class="Number">129</span><span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>in</span> <span class="String"><span class="String">`</span>extend': wrong argument type Class (expected Module) (TypeError)</span>
<span class="line-numbers">   3 </span> <span class="String">       from /var/lib/gems/1.8/gems/ParseTreeReloaded-0.0.1/lib/parse_tree_reloaded.rb:129:in <span class="String">`</span></span>to_sexp<span class="String"><span class="String">'</span></span>
<span class="line-numbers">   4 </span> <span class="String">       from /var/lib/gems/1.8/gems/ParseTreeReloaded-0.0.1/lib/parse_tree_reloaded.rb:93:in `parse_tree_for_method<span class="String">'</span></span>
<span class="line-numbers">   5 </span>        from <span class="Operator">/</span>var<span class="Operator">/</span>lib<span class="Operator">/</span>gems<span class="Operator">/</span><span class="Number">1.8</span><span class="Operator">/</span>gems<span class="Operator">/</span>ruby2ruby<span class="Operator">-</span><span class="Number">1.1</span>.<span class="Number">6</span><span class="Operator">/</span>lib<span class="Operator">/</span>ruby2ruby.<span class="FunctionName">rb</span>:<span class="Number">1063</span><span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>in</span> <span class="String"><span class="String">`</span>to_sexp'</span>
</pre></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/216-web">web</a>, <a href="/tags/217-scraping">scraping</a>, <a href="/tags/115-google">google</a>, <a href="/tags/218-scrubyt">scrubyt</a>, <a href="/tags/8-ruby">ruby</a>, <a href="/tags/362-gotcha">gotcha</a>, <a href="/tags/366-hpricot">hpricot</a>, <a href="/tags/614-todelete">todelete</a>, <a href="/tags/615-obsolete">obsolete</a>
    
    
  </div>
</div>






