2010-02-21 27 views
5

uso el plugin de wikipedia-api para obtener páginas de contenido de wikipedia. Desde algunos días que recibo este error cuando intento de obtener los contenidos:OpenURI :: HTTPError: 403 Forbidden

page = Wikipedia.find_by_titles('Foo') 
OpenURI::HTTPError: 403 Forbidden 
    from /usr/lib/ruby/1.8/open-uri.rb:277:in `open_http' 
    from /usr/lib/ruby/1.8/open-uri.rb:616:in `buffer_open' 
    from /usr/lib/ruby/1.8/open-uri.rb:164:in `open_loop' 
    from /usr/lib/ruby/1.8/open-uri.rb:162:in `catch' 
    from /usr/lib/ruby/1.8/open-uri.rb:162:in `open_loop' 
    from /usr/lib/ruby/1.8/open-uri.rb:132:in `open_uri' 
    from /usr/lib/ruby/1.8/open-uri.rb:518:in `open' 
    from /usr/lib/ruby/1.8/open-uri.rb:30:in `open' 
    from /home/luca/Programming/nerto_5/vendor/plugins/wikipedia-api/lib/mediawiki.rb:139:in `get_xml' 

¿Qué es eso?

¿Cómo puedo hacer?

gracias

Respuesta

6

he resuelto cambiando

Hpricot.XML(open(url)) 

en

Hpricot.XML(open(url, 'User-Agent' => 'ruby')) 

En el archivo mediawiki.rb

+2

¿Hay alguna razón por la que esto funciona? – thekingoftruth

3

Sí funciona.

Lo mismo para Nokogiri 403 Prohibido problemas

doc = Nokogiri :: HTML (abierta (sitio, 'User-Agent' => 'ruby'))

Cuestiones relacionadas