---
name: "WWW::Wikipedia"
section: "3pm"
platform: "linux"
package: "libwww-wikipedia-perl"
version: "2.05-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/WWW::Wikipedia"
---

# WWW::Wikipedia(3pm)

Automated interface to the Wikipedia

## NAME

WWW::Wikipedia - Automated interface to the Wikipedia

## SYNOPSIS

```
  use WWW::Wikipedia;
  my $wiki = WWW::Wikipedia->new();
  ## search for 'perl'
  my $result = $wiki->search( 'perl' );
  ## if the entry has some text print it out
  if ( $result->text() ) {
      print $result->text();
  }
  ## list any related items we can look up
  print join( "\n", $result->related() );
```

## DESCRIPTION

WWW::Wikipedia provides an automated interface to the Wikipedia  \<http://www.wikipedia.org\>, which is a free, collaborative, online  encyclopedia. This module allows you to search for a topic and return the  resulting entry. It also gives you access to related topics which are also  available via the Wikipedia for that entry.

## INSTALLATION

To install this module type the following:

```
    perl Makefile.PL
    make
    make test
    make install
```

## METHODS

### new()

The constructor. You can pass it a two letter language code, or nothing to let it default to 'en'.

```
    ## Default: English
    my $wiki = WWW::Wikipedia->new();
    ## use the French wiki instead
    my $wiki = WWW::Wikipedia->new( language => 'fr' );
```

WWW::Wikipedia is a subclass of LWP::UserAgent. If you would like to have more control over the user agent (control timeouts, proxies ...)  you have full access.

```
    ## set HTTP request timeout
    my $wiki = WWW::Wikipedia->new();
    $wiki->timeout( 2 );
```

You can turn off the following of wikipedia redirect directives by passing a false value to `"follow_redirects"`.

Together with the Wiki markup, some entries include HTML tags. They can be stripped out using the `"clean_html"` option:

```
   my $wiki = WWW::Wikipedia->new( clean_html => 1 );
```

See `"clean_html"` documentation below for details.

### language()

This allows you to get and set the language you want to use. Two letter language codes should be used. The default is 'en'.

```
    my $wiki = WWW::Wikipedia->new( language => 'es' );

    # Later on...
    $wiki->language( 'fr' );
```

### clean\_html()

Allows you to get/set if HTML is being stripped out.

```
    # set HTML strip
    $wiki->clean_html( 1 );
```

This option removes all tags and attributes they might have. Their contents, however, is maintained (for now). Comments are also removed.

### follow\_redirects()

By default, wikipeda redirect directives are followed. Set this to false to turn that off.

### search()

Which performs the search and returns a WWW::Wikipedia::Entry object which  you can query further. See WWW::Wikipedia::Entry docs for more info.

```
    $entry = $wiki->search( 'Perl' );
    print $entry->text();
```

If there's a problem connecting to Wikipedia, `"undef"` will be returned and the error message will be stored in `"error()"`.

### random()

This method fetches a random wikipedia page.

### error()

This is a generic error accessor/mutator. You can retrieve any searching error messages here.

## TODO

- •

  Be more specific on the HTML clean methodology. For now all tags are removed, keeping only their contents. In the future the behaviour might change accordingly with each specific tag.

- •

  Watch the development of Special:Export XML formatting, eg: http://en.wikipedia.org/wiki/Special:Export/perl

## SEE ALSO

- •

  LWP::UserAgent

## REPOSITORY

\<https://github.com/edsu/www-wikipedia\>

## AUTHORS

Ed Summers \<ehs@pobox.com\>

Brian Cassidy \<bricas@cpan.org\>

## COPYRIGHT AND LICENSE

Copyright 2003-2017 by Ed Summers

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
