Grab и Windows 64bit

К сожалению, такая библиотека как Grablib не полноценно работает под Windows x64,
проблема в библиотеке PyCurl, корректной сборки под 64бита которой нет

последнюю версию библиотеки 2013 года можно скачать отсюда
https://github.com/stden/python2_libs

(либо, конечно, отсюда http://www.lfd.uci.edu/~gohlke/pythonlibs/ , но там, увы, нет exe)

Не 64 битная версия НЕ будет работать с 64 бит версией Питона.

А вышеописанная версия отсюда https://github.com/stden/python2_libs некооректно работает с POST запросами. Причем  - по настроению.

Логин - отрабатывает. Поиск с POST запросом - нет.

Будем ждать, когда скомпилируют более новую, а пока - VmWare, Linux

запрос для поиска 64битной сборки под windows: "pycurl-7.19.0.win-amd64-py2.7.‌exe"


отдельной проблемой является версия pycurl 7.19: дело в том, что до версии 7.19.3 pycurl не поддвреживает уникода вообще, из-за этого зависимости внутри Grab  становятся слишком уж сложными, например, такое срабатывает 

g.go('http://example.com/search', post={'search': u'request'},
     charset='iso-8859-1')

а те же манипуляции с файлом cookies - нет:

g.setup(cookiefile=u'cook.txt'.encode('iso-8859-1')) 

везде одна и та же ошибка:

TypeError: invalid arguments to setopt

однако - если строку закомментировать - все отлично.

в общем, с windows и 64 бит PyCurl  не судьба: или Linux или 32 битная версия Питона и т.п.

окончательно убедиться в этом можно поставив 32 битную версию Питона 2,7, и под нее 32 битные же версии lxml и pycurl


для справки:

The Unicode handling documented here was implemented in PycURL 7.19.3 along with Python 3 support. Prior to PycURL 7.19.3 Unicode data was not accepted at all:
>>> import pycurl
>>> c = pycurl.Curl()
>>> c.setopt(c.USERAGENT, u'Foo\xa9')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: invalid arguments to setopt




Комментарии