Wikipedia:Database download
From Wikipedia, the free encyclopedia
- WP:DD redirects here. You may be looking for WikiProject Dungeons & Dragons, or Deletion debates
Wikipedia offers free copies of all content to interested users. These databases can be used for mirroring, personal use, informal backups, or database queries (such as for Wikipedia:Maintenance). All text content is licensed under the GNU Free Documentation License (GFDL). Images and other files are available under different terms, as detailed on their description pages. For our advice about complying with these licenses, see Wikipedia:Copyrights.
[edit] Where do I get...
- Dumps from any Wikimedia Foundation project: http://download.wikimedia.org/
- English Wikipedia dumps in SQL and XML: http://download.wikimedia.org/enwiki/
- pages-articles.xml.bz2 - Current revisions only, no talk or user pages (this is the one you probably want)
- pages-current.xml.bz2 - Current revisions only, all pages
- pages-full.xml.bz2/7z - Current revisions, all pages (includes talk and user pages)
- pages-meta-history.xml.bz2 - All revisions, all pages
- abstract.xml.gz - page abstracts
- all_titles_in_ns0.gz - Article titles only
- SQL files for the pages and links are also available
- Caution: Some dumps may be incomplete - pay attention to such warnings (e.g. "Dump complete, 1 item failed") near the dump file.
- To download a subset of the database in XML format, such as a specific category or a list of articles see: Special:Export, usage of which is described at Help:Export.
- Wiki front-end software: Wikipedia:MediaWiki.
- Database backend software: You want to download MySQL.
- Image dumps: See below.
In the http://download.wikimedia.org/ directory you will find the latest SQL dumps for the projects, not just English. For example, (others exist, just select the appropriate two letter language code and the appropriate project):
- English Wikipedia dumps: http://download.wikimedia.org/enwiki/
- Spanish Wikipedia dumps: http://download.wikimedia.org/eswiki/
- French Wikipedia dumps: http://download.wikimedia.org/frwiki/
- German Wikipedia dumps: http://download.wikimedia.org/dewiki/
Some other directories (e.g. simple, nostalgia) exist, with the same structure.
[edit] Images and uploaded files
Unlike most article text, images are not necessarily licensed under the GFDL. They may be under one of many free licenses, in the public domain, believed to be fair use, or even copyright infringements (which should be deleted). In particular, use of fair use images outside the context of Wikipedia or similar works may be illegal. Images under most licenses require a credit, and possibly other attached copyright information. This information is included in image description pages, which are part of the text dumps available from download.wikimedia.org. In conclusion, download these images at your own risk (Legal).
[edit] Currently Wikipedia does not allow or provide facilities to download all Images
As of May 17, 2007, Wikipedia disabled or neglected all viable bulk downloads of images including torrent trackers, therefore there is no way to download image dumps other than scraping Wikipedia pages up or using Wikix, which converts a database dump in a series of scripts to fetch the images.
[edit] Dealing with large files
You may run into problems downloading files of unusual size. Some older operating systems, file systems, and web clients have a hard limit of 2GB on file size. If you seem to be hitting this limit, try using wget version 1.10 or greater, cURL version 7.11.1-1 or greater, or a recent version of lynx (using -dump). Users have experienced problems with Mozilla and Firefox, but recent versions are more likely to be fixed.
It is recommended that you check the MD5 sums (provided in a file in the download directory) to make sure your download was complete and accurate. You can check this by running the "md5sum" command on the files you downloaded. Given how large the files are, this may take some time to calculate. Due to the technical details of how files are stored, file sizes may be reported differently on different filesystems, and so are not necessarily reliable. Also, you may have experienced corruption during the download, though this is unlikely.
The file size limits for the various file systems are as follows:
- FAT16 (MS-DOS version 6, Windows 3.1, and earlier) supports files up to 2GB.
- FAT32/VFAT (Windows 95, 98, 98SE, and ME) supports files up to 4GB.
- NTFS (Windows NT 3.51+, 2000, XP, Server 2003, and Vista) supports up to 16 exabytes.
- XFS supports files up to 8 exabytes in size.
- If you are running a Linux kernel version 2.4 or greater, ext2 and ext3 filesystems can handle 16GB files and larger, depending on your block size. See http://www.suse.de/~aj/linux_lfs.html for more information.
Many standard programming libraries and functions may also cause problems when accessing large files. For example, the standard C function, fopen, limits file sizes to 2GB on 32-bit systems. This is due to it using signed 32-bit integers, limiting file pointers to 2^31 bits (2GB).
[edit] Why not just retrieve data from wikipedia.org at runtime?
Suppose you are building a piece of software that at certain points displays information that came from wikipedia. If you want your program to display the information in a different way than can be seen in the live version, you'll probably need the wikicode that is used to enter it, instead of the finished HTML.
Also if you want to get all of the data, you'll probably want to transfer it in the most efficient way that's possible. The wikipedia.org servers need to do quite a bit of work to convert the wikicode into html. That's time consuming both for you and for the wikipedia.org servers, so simply spidering all pages is not the way to go.
To access any article in XML, one at a time, access:
http://en.wikipedia.org/wiki/Special:Export/Title_of_the_article
Read more about this at Special:Export.
To access any article via an RSS Feed, one at a time, access:
http://www.blinkbits.com/en_wikifeeds_rss/Title_of_the_article
Read more about this at User:Blinklmc.
Please be aware that live mirrors of Wikipedia that are dynamically loaded from the Wikimedia servers are prohibited. Please see Wikipedia:Mirrors and forks.
[edit] Please do not use a web crawler
Please do not use a web crawler to download large numbers of articles. Aggressive crawling of the server can cause a dramatic slow-down of Wikipedia. Our robots.txt blocks many ill-behaved bots.
[edit] Sample blocked crawler email
- IP address nnn.nnn.nnn.nnn was retrieving up to 50 pages per second from wikipedia.org addresses. Robots.txt has a rate limit of one per second set using the Crawl-delay setting. Please respect that setting. If you must exceed it a little, do so only during the least busy times shown in our site load graphs at http://stats.wikimedia.org/EN/ChartsWikipediaZZ.htm. It's worth noting that to crawl the whole site at one hit per second will take several weeks. The originating IP is now blocked or will be shortly. Please contact us if you want it unblocked. Please don't try to circumvent it - we'll just block your whole IP range.
- If you want information on how to get our content more efficiently, we offer a variety of methods, including weekly database dumps which you can load into MySQL and crawl locally at any rate you find convenient. Tools are also available which will do that for you as often as you like once you have the infrastructure in place. More details are available at http://en.wikipedia.org/wiki/Wikipedia:Database_download.
- Instead of an email reply you may prefer to visit #mediawiki at irc.freenode.net to discuss your options with our team.
[edit] Doing SQL queries on the current database dump
[ Correction Needed? The wikisign page is not active at this time (11/09/2006). ]
You can do SQL queries on the current database dump (as a replacement for the disabled Special:Asksql page) . For more information about this service, see de:Benutzer:Filzstift/wikisign.org (in German only).
[edit] Dealing with compressed files
Approximate file sizes are given for the compressed dumps; uncompressed they'll be significantly larger.
Some older archives are compressed with gzip, which is compatible with PKZIP (the most common Windows format). Newer archives are available in both bzip2 and 7zip compressed formats.
Windows users may not have a bzip2 decompressor on hand; a command-line Windows version of bzip2 (from here) is available for free under a BSD license.
The LGPL'd GUI file archiver, 7-zip [1], is also able to open bz2 compressed files, and is available for free.
MacOS X ships with the command-line bzip2 tool.
Please note that older versions of bzip2 may not be able to handle files larger than 2GB, so make sure you have the latest version if you experience any problems.
[edit] Database schema
[edit] SQL schema
See also: mw:Manual:Database layout
The database schema is explained here. The cur tables contain the current revisions of all pages; the old tables contain the prior edit history.
[edit] XML schema
The XML schema for each dump is defined at the top of the file. Wikipedia uncompressed XML can be converted to SQL using this tool.
[edit] Help parsing dumps for use in scripts
- Wikipedia:Computer help desk/ParseMediaWikiDump describes the Perl Parse::MediaWikiDump library, which can parse XML dumps.
- Wikipedia preprocessor (wikiprep.pl) is a Perl script that preprocesses raw XML dumps and builds link tables, category hierarchies, collects anchor text for each article etc.
[edit] Help importing dumps into MySQL
See:
[edit] Importing sections of a dump
This section is out of date.
The following Perl script is a parser for extracting the Help sections from the SQL dump:
s/^INSERT INTO cur VALUES //gi; s/\n// if (($j++ % 2) == 0); s/(\'\d+\',\'\d+\'\)),(\(\d+,\d+,)/$1\;\n$2/gs; foreach (split /\n/) { next unless (/^\(\d+,12,\'/); s/^\(\d+,\d+,/INSERT INTO cur \(cur_namespace,cur_title,cur_text,cur_comment,cur_user, cur_user_text,cur_timestamp,cur_restrictions,cur_counter,cur_is_redirect,cur_minor_edit, cur_is_new,cur_random,cur_touched,inverse_timestamp\) VALUES \(12,/; s/\n\s+//g; s/$/\n/; print; }
NOTE: (as at 2005-05-16) the order of the fields in the cur table has changed. inverse_timestamp now comes BEFORE cur_touched. This may cause Windows users no end of grief because all of a sudden your MediaWiki starts sprouting PHP errors about dates that are negative or occur before 1 January 1970 being passed to gmdate and gmmktime functions in GlobalFunctions.php. The reason is that the fields are swapped around and so there is rubbish data in these two fields. Maybe the Unix versions of these functions are smarter or do not cause PHP to spit a Warning message into the HTML script output, or else people have php.ini configured to not display these.
In other words, check that the field order in the script aligns with those in the dump. Better still, we should look at changing the script to retain whatever field order the dump uses 8-)
You can run the script and get a resulting help.sql file with this command:
bzip2 -dc <Date>_cur_table.sql.bz2 | perl -n <Script Name> > help.sql
The script can be easily modified to acquire any section you need with a few minor changes. Currently, it is set to get all records from namespace 12, the Help namespace. You can change the two 12's to grab a different namespace, or slightly change a couple of regular expressions to get, say, all articles that begin with Q:
next unless (/^\(\d+,\d+,\'[qQ]/); s/^\(\d+,/INSERT INTO cur \(cur_namespace,cur_title,cur_text,cur_comment,cur_user, cur_user_text,cur_timestamp,cur_restrictions,cur_counter,cur_is_redirect,cur_minor_edit, cur_is_new,cur_random,cur_touched,inverse_timestamp\) VALUES \(/;
Or you can use more more generic version of this script from User:Msm/extract.pl.
NOTE: While this sounds really straightforward as a way to grab the Help namespace (#12) for use on your newly implemented MediaWiki site, you need more than just that. You also need the Template namespace (# 10) since many of the Help: pages rely on templates in some form or another. Of course, you then end up with hundreds of templates that are NOT used by the Help: pages too. Has anyone got a better idea for a script to do this ? Armistej
[edit] Static HTML tree dumps for mirroring or CD distribution
MediaWiki 1.5 includes routines to dump a wiki to HTML, rendering the HTML with the same parser used on a live wiki. As the following page states, putting one of these dumps on the web unmodified will constitute a trademark violation. They are intended for private viewing in an intranet or desktop installation.
The static version of Wikipedia created by Wikimedia
- Terodump is an alpha quality wikipedia to static html dumper, made from old 2003 wikipedia code. Static html dump (beta quality) wikipedia-terodump-0.1.tar.bz. This dump is made of a database 2003. - User:Tero
- Wiki2static (site down as of October 2005) was an experimental program set up by User:Alfio to generate html dumps, inclusive of images, search function and alphabetical index. At the linked site experimental dumps and the script itself can be downloaded. As an example it was used to generate these copies of English WikiPedia 24 April 04, Simple WikiPedia 1 May 04(old database) format and English WikiPedia 24 July 04Simple WikiPedia 24 July 04, WikiPedia Francais 27 Juillet 2004 (new format). BozMo uses a version to generate periodic static copies at fixed reference.
- If you want to draft a traditional website in Mediawiki and dump it to HTML format, you might want to try mw2html by User:Connelly.
- If you'd like to help develop dump-to-static HTML tools, please drop us a note on the developers' mailing list.
See also:
- Meta:Alternative parsers which lists some other not working options for getting static HTML dumps
- Wikipedia:Snapshots
- Wikipedia:TomeRaider database
- http://sdict.com hosts a January 2007 snapshot in the open source Sdictionary .dct format
[edit] Dynamic HTML generation from a local XML database dump (WikiFilter)
Instead of converting a database dump file to many pieces of static HTML, one can also use a dynamic HTML generator. Browsing a wiki page is just like browsing a Wiki site, but the content is fetched and converted from a local dump file upon request from the browser.
[edit] WikiFilter
WikiFilter is a program which it allows you to browse over 100 dump files without visiting a Wiki site.
[edit] WikiFilter system requirements
- A recent Windows version (WinXP is fine; Win98 and WinME won't work because they don't have NTFS support)
- A fair bit of hard drive space (To install you will need about 12 - 15 Gigabytes; afterwards you will only need about 10 Gigabytes)
[edit] How to set up WikiFilter
- Start downloading a Wikipedia database dump file such as an English Wikipedia dump. It is best to use a download manager such as GetRight so you can resume downloading the file even if your computer crashes or is shut down during the download.
- Download XAMPPLITE from [2] (you must get the 1.5.0 version for it to work). Make sure to pick the file whose filename ends with .exe
- Install/extract it to C:\XAMPPLITE.
- Download WikiFilter 2.3 from this site: https://sourceforge.net/projects/wikifilter. You will have a choice of files to download, so make sure that you pick the 2.3 version. Extract it to C:\WIKIFILTER.
- Copy the WikiFilter.so into your C:\XAMPPLITE\apache\modules folder.
- Edit your C:\xampplite\apache\conf\httpd.conf file, and add the following line:
- LoadModule WikiFilter_module "C:/XAMPPLITE/apache/modules/WikiFilter.so"
- When your Wikipedia file has finished downloading, uncompress it into your C:\WIKIFILTER folder. (I used WinRAR http://www.rarlab.com/ demo version.)
- Run WikiFilter (WikiIndex.exe), and go to your C:\WIKIFILTER folder, and drag and drop the XML file into the window, click Load, then Start.
- After it finishes, exit the window, and go to your C:\XAMPPLITE folder. Run the setup_xampp.bat file to configure xampp.
- When you finish with that, run the Xampp-Control.exe file, and start apache.
- Browse to http://localhost/wiki and see if it works
- If it doesn't work, see the forums.
[edit] WikiTaxi
WikiTaxi is a portable offline-reader for wikis in MediaWiki format. It enables users to search and browse popular wikis like Wikipedia, Wikiquote, or WikiNews, without being connected to the Internet. WikiTaxi works well with different languages like English, German, Turkish, and others.
[edit] WikiTaxi system requirements
- Any Windows version starting from Windows 95 or later. Large File support (greater than 4 GB) for the huge wikis (English only at the time of this writing).
- 16 MB RAM or less for the WikiTaxi reader, 128 MB recommended for the importer (more for speed).
- Storage space for the Wiki database. At the moment, this grows to about 6.5 GB for the English Wikipedia, 2 GB for German, less for other Wikis. These figures are likely to grow in the future.
[edit] WikiTaxi usage
- Download WikiTaxi and extract to an empty folder. No installation is otherwise required.
- Download the XML database dump (*.xml.bz2) of your favorite wiki.
- Run WikiTaxi_Importer.exe to import the database dump into a WikiTaxi database. The importer takes care to uncompress the dump as it imports, so make sure to save your drive space and do not uncompress beforehand.
- When the import is finished, start up WikiTaxi.exe and open the generated database file. You can start searching, browsing, and reading immediately.
- After a successful import, the XML dump file is no longer needed and can be deleted to reclaim disk space.
- To update an offline Wiki for WikiTaxi, download and import a more recent database dump.
For WikiTaxi reading, only two files are required: WikiTaxi.exe and the .taxi database. Copy them to any storage device (memory stick or memory card) or burn them to a CD or DVD and take your Wikipedia with you wherever you go!
[edit] Rsync2
This section is out of date.
You can use rsync to download the database. For example, this command will download the current English database:
rsync rsync://download.wikimedia.org/dumps/wikipedia/en/cur_table.sql.bz2 . --partial --progress
The "--partial" switch prevents rsync from deleting the file in the event the download is interrupted. You may then issue the very same command again to resume the download. The "--progress" switch will show the download progress; for less verbose output, do not use this switch.
The rsync utility is designed to synchronize files in a manner such that only the differences between the files are transferred. This provides a considerable performance enhancement, especially when synchronizing large files that have relatively few changes. However, if a file is compressed or encrypted, rsync will not perform well; in fact, it may perform worse than downloading a fresh copy of the file. Many of the database files are only available compressed. Therefore, there is little, if anything, to be gained by attempting to use rsync as a means of expediting an update of an older SQL dump. If the SQL dumps were available uncompressed, this process should work extremely well, especially if rsync is invoked with the on-the-fly compression switch (-z). It is uncertain as to whether uncompressed database dumps will become available. However, rsync does remain a useful and expedient tool for resuming downloads that have been interrupted, repairing downloads that have become corrupted, or updating any files that are not compressed (i.e. upload.tar). For more information, see rsync.
[edit] Technical notes
- There is some discussion about a modified gzip that can improve rsync performance. This patch to gzip resets the output stream at fixed intervals. This results in fixed-size blocks of compressed data, which are friendlier to rsync. Bzip2 is designed from the start to create blocks of compressed data, and works well with rsync. Since bzip2’s compression ratios are almost always better than gzip’s, there is no reason to switch.
- Technically speaking, upload.tar is compressed, in the sense that it mostly contains compressed files such as images (which is why it should not be compressed otherwise). However, usually the files themselves do not change. The addition, removal, or reordering of static files in an uncompressed tarball should still yield excellent rsync performance, regardless of the content of those files.
[edit] Outdated content
You may be interested in older en dumps in XML at http://download.wikimedia.org/enwiki/, though using the newest dumps is strongly recommended. These dumps contain:
- pages-current.xml.bz2 - Current revisions only, all pages
- pages-full.xml.bz2 - All revisions, all pages
- pages-articles.xml.bz2 - Current revisions only, no talk or user pages (this is the one you probably want)
- all_titles_in_ns0.gz - Article titles only
[edit] See also
- Wikipedia:Wikipedia-CD/Download
- m:Help:Downloading pages
- m:Export
- m:Import
- Wikipedia Offline is a commercial application containing 2,600,000 articles with a helper software for off-line searching and displaying Wikipedia content.