2013-03-10 17 views
8

Mam listę potoków info_hashes. Dla każdego info_hash, mam listę trackerów, które odpowiadają temu info_hash.python http/udp bittorrent tracker scrape library

To, co chciałbym zrobić, to zeskrobać każdy tracker z listy, aby uzyskać liczbę siewnika/leechhera/ukończonego. Jednak raczej nie próbowałbym napisać tego sam, ponieważ jestem pewien, że ten kod został zaimplementowany gdzie indziej.

Czy ktoś wie o bibliotece Pythona, która może skrobać http: // i udp: // trackers?

Używam libtorrent dla innych części tego projektu, jednak może on tylko zeskrobać tracker z prawidłowej torrent_handle (i nie chcę dodawać tych info_hashes do sesji libtorrent, aby zesperować tracker, ponieważ zacznie pobierać pliki, których nie chcę).

Odpowiedz

10

Nie chcę używać libtorrent również dlatego, że jest dość nieefektywny - chcę mieć możliwość wysyłania zapytań do trackera dla wielu info_hashów zamiast jednego na raz.

skończyło się pisać własne python HTTP/UDP tracker kod skrobania, zobacz tutaj: https://github.com/erindru/m2t/blob/master/m2t/scraper.py (ulepszenia najbardziej mile widziane!)

+0

Dzięki temu możesz uzyskać listę lista wzajemnej/siewnik adresów IP? –

+0

Nie jest to obecnie problem, ale może być przedłużony, aby to zrobić –

+0

OK Dzięki. Jeszcze jedno pytanie: widzę, że http oczekuje słownika (bencoded), więc dostaje dane. Jednak udp tylko kompensuje bufor, skąd znasz kolejność bajtów i to, co reprezentują, więc jeśli potrzebuję adresów IP rówieśników, na jakim poziomie jest to przesunięcie? Czy jest jakaś dokumentacja? –

1

To nie jest bezpośrednio odpowiedź na twoje pytanie, ale sugestia, w jaki sposób możesz użyć libtorrent.

Dodanie informacji-hash w pauzowanym, nieautomatycznym zarządzaniu (kontrolowane przez flagi w add_torrent_params). W takim przypadku libtorrent nie rozpocznie pobierania.

Należy pamiętać, że plik libtorrent nie obsługuje jeszcze skrobania DHT.