dhtcrawler is a DHT crawler written in erlang. It can join a DHT network and crawl many P2P torrents. The program saves all torrent info into database and provide an http interface to search a torrent by a keyword.

dhtcrawler2 is an extended version to dhtcrawler. It has improved a lot on crawling speed, and is much more stable.
This git branch maintains pre-compiled erlang files to start dhtcrawler2 directly. So you don’t need to compile it yourself, just download it and run it to collect torrents and search a torrent by a keyword.
Enjoy it!
download mongodb and start mongodb first
mongod --dbpath your-database-path --setParameter textSearchEnabled=true
win_start_crawler.batwin_start_hash.batwin_start_http.batlocalhost:8000You can also compile the source code and run it manually. The source code is in src branch of this repo.
Also you can check more technique information at my blog site (Chinese) codemacro.com
dhtcrawler is totally open source, and can be used for any purpose, but you should keep my name on, copyright by me please. You can checkout dhtcrawler2 source code in this git repo src branch.
Most config value is in priv/dhtcrawler.config, when you first run dhtcrawler, this file will be generated automatically. And the other config values are passed by arguments to erlang functions. In most case you don’t need to change these config values, except these network addresses.
It’s not related to dhtcrawler, but only Mongodb, try figure it yourself.
Yes of course you can write another http front-end UI based on the torrent database, if you’re interested in it I can help you about the database format.
Yes, dhtcrawler2 supports sphinx search. There’s a tool named sphinx-builder load torrents from database and create sphinx index. crawler-http can also search text by sphinx.
dhtcrawler2 uses mongodb text search by default, to use sphinx, follow these steps below:
coreseek which supports Chinese characters. coreseek4.1bin directory to PATH environment variable, so that dhtcrawler can invoke indexer tooletc/csft.conf file
add a delta index, i.e:
source delta:xml
{
type = xmlpipe2
xmlpipe_command = cat g:/downloads/coreseek-4.1-win32/var/test/delta.xml
}
index delta:xml
{
source = delta
path = g:/downloads/coreseek-4.1-win32/var/data/delta
}
change the other directories, better to use absolute path
win_init_sphinx_index.bat to generate a default sphinx-builder config file, and terminate win_init_sphinx_index.batpriv/sphinx_builder.config, specify main and delta sphinx index source file name, main and delta index name and sphinx config file, these file names must match these configs you write in etc/csft.confwin_init_sphinx_index.bat again to initialize sphinx index file, terminate win_init_sphinx_index.bat and if it initializes sphinx index successfully, never run it againsearchd serverwin_start_sphinx_builder to start sphinx-builder, it will read torrents from your torrent database and build the index into sphinxpriv/hash_reader.config search_method to sphinx, so that hash_reader will not build mongodb text search index any morepriv/httpd.config search_method to sphinx, so that crawler-http will search keyword by sphinxLots of details! And you’d better to know sphinx well.
See LICENSE.txt