Issue #61 resolved

grab для python 3

xpeh
created an issue

Есть планы перенести grab на тройку? А то глючки в двойке уже достали.

Есть ли pycurl для тройки?

Comments (13)

  1. Gregory Petukhov repo owner

    Пока таких планов нету т.к. мне лично оно не нужно, если кто-то готов пилить - я не против, конечно :)

    Пайкурл для тройки отсутствует, насколько я знаю. Архитектура граба предусматривает использование других сетевых библиотек, на тройке можно заюзать urllib/requests/gevent связку.

  2. xpeh reporter

    Пока таких планов нету т.к. мне лично оно не нужно, если кто-то готов пилить - я не против, конечно :)

    Понятно. Мде.

    Архитектура граба предусматривает использование других сетевых библиотек, на тройке можно заюзать urllib/requests/gevent связку.

    Насколько они оттестированы? Ими кто-то пользовался?

    grab через requests - это как на корову посадить лошадь и на ней ехать (c).

    Была бы в requests нормальная поддержка проксей и маскировка искаропки - я бы туда ушел.

  3. Gregory Petukhov repo owner

    Насколько они оттестированы?

    Тесты запускаются из корня репозитория командой ./runtest.py, чтобы запустить тесты для граба с reqeusts транспортом, нужно:

    ./runtest.py --transport=requests.RequestsTransport

    Ими кто-то пользовался?

    Вряд ли.

  4. Anton Smirnov

    Ну почему же, я как то пользовался... На шаредхостинге не было альтернативы Только то, что Spider не поддерживал тогда другие транспорты - это было мало интересно

  5. xpeh reporter

    Хотя пардон, зачем мне grab с какими-то транспортами, если он все равно на тройке не работает. Разве что самому его туда портировать - имхо проще перенести нужный функционал на requests.

    Можно писать код, который будет работать на обеих версиях?

  6. Alex Voronin

    Жаль. А ведь третий Питон это будущее. Григорий, а почему вы изначально не стали делать библиотеку Grab для Python 3?

  7. xpeh reporter

    А ведь третий Питон это будущее.

    Уже как бы настоящее. Граб - одна из немногих вещей, которые держат меня на двойке.

    Григорий, а почему вы изначально не стали делать библиотеку Grab для Python 3?

    Потозреваю, что на тот момент, когда библиотека создавалась, он еще был полным УГ.

    lxml, например, написана так, что она будет работать на обеих ветках. Может, с грабом сделать то же самое?

  8. Gregory Petukhov repo owner

    Григорий, а почему вы изначально не стали делать библиотеку Grab для Python 3?

    Изначально граб писался вообще под 2.4, который в 2007 году был дефолтной версией питона.

    lxml, например, написана так, что она будет работать на обеих ветках. Может, с грабом сделать то же самое?

    Я не против, если кто-то изучит этот вопрос и выработает решение. Мне самому py3k не нужен.

  9. Gregory Petukhov repo owner

    Чё-то торкнуло меня сегодня ночью. Сел и сделал минимально работаюущую версию под python3. Для начала я загуглил это http://carnivore.it/2009/12/19/python3_pycurl Патч из статьи не заработал, но там в комментариях есть ссылка на актуальны патч: http://sourceforge.net/tracker/?func=detail&aid=3188495&group_id=28236&atid=392779 И он то заработал.

    Как собрать pycurl под третий питон:

    cvs -d:pserver:anonymous@pycurl.cvs.sourceforge.net:/cvsroot/pycurl login
    cvs -z3 -d:pserver:anonymous@pycurl.cvs.sourceforge.net:/cvsroot/pycurl co -P pycurl
    cd pycurl
    wget 'http://sourceforge.net/tracker/download.php?group_id=28236&atid=392779&file_id=402321&aid=3188495' -O 3k.patch
    cat 3k.patch | patch -p0
    sudo python3 setup.py install
    

    Далее я написал простенький скрипт для скачивания одной html-страницы и правил сорцы граба до тех пор пока скрипт не запустился. Естественно, под python2k всё продолжает работать.

    Вот изменения: https://bitbucket.org/lorien/grab/changeset/e820b59b1728e699538e7486203deaf8

    Так что кому нужен граб под python3k - всё теоритически возможно. Клонируйте репу, комилируйте pycurl и допиливайте сорцы,чтобы всё работало. Я допиливал только, чтобы минимальный пример запустился.

  10. Log in to comment