Найти - Пользователи
Полная версия: Многопоточная закачка через различные Socks/HTTP прокси
Начало » Network » Многопоточная закачка через различные Socks/HTTP прокси
1 2 3 4 5 6 7
plusplus
krishnarama
lorien, а почему ты не предлагаешь grab?
Дак тут его функциональность не нужна, а скорость загрузки он определять вроде как не умеет.
krishnarama
Ну, во-первых, товарищ его абсолютно везде предлагал

Во-вторых, я не знаю, как стоит вопрос - устроит ли качать файл и смотреть на время его загрузки?

И в третьих, если можно как-то хукнуть writefunction, то с ней становится возможно все.

Вообще, такая функциональность есть в urlretrieve (сообщать коллбеку о загруженых блоках). Очень жалко, что вся стандартная библиотека кроме как через жопу с проксями не работает.
Dwarf
krishnarama
Во-вторых, я не знаю, как стоит вопрос - устроит ли качать файл и смотреть на время его загрузки?
Нет, нужно отслеживать скорость в данный момент.

krishnarama
Очень жалко, что вся стандартная библиотека кроме как через жопу с проксями не работает.
Не знаете, с чем это связано и будет ли исправлено в ближайшем времени?
krishnarama
А чем не устраивает скачать тестовый файл?

Dwarf
Не знаете, с чем это связано и будет ли исправлено в ближайшем времени?
С чем связано - хз, поддержку socks прокси все никак не могут добавить даже в requests, хотя уже и патч прислали.
Dwarf
requests это же надстройка над urllib3?
plusplus
krishnarama
С чем связано - хз, поддержку socks прокси все никак не могут добавить даже в requests, хотя уже и патч прислали.

А как они сделали работу с соксами, полностью с нуля написали в этом патче или сторонний модуль используют?
krishnarama
https://github.com/kennethreitz/requests/pull/478

Вот, кстати, нужный тебе функционал: http://docs.python-requests.org/en/latest/user/advanced/#body-content-workflow
lorien
> не хотелось бы её использовать. Во-первых она давно не обновляется, во-вторых под Windows её надо собирать, что неудобно, ибо желательно, чтобы всё ставилось через pip.

Ну, честно говоря, я через pycurl (посредством граба) спарсил не один десяток миллионов страниц. И ещё куча народа юзает его. Да там есть баги, а где их нет? Под винду есть exe инсталляторы курлы. Мы даже под третий питон пайкурл собирали под линём и под виндой.

> lorien, а почему ты не предлагаешь grab?
Потому что я туда не прикручивал контроль скорости закачки, но вроде сам pycurl это умеет.

Ну и если очень что-то надо, а самому делать не охочется, платите деньгу и это появится в грабе очень быстро.
krishnarama
А в grab есть keep-alive и пуникод?
lorien
Keep-alive - без понятия, разве что это как-то автоматически курл делает. Был бы признателен, если бы кто-то исследовал этот вопрос в грабе и написал отчёт.

Пуникод есть
>>> from grab import Grab
>>> g= Grab()
>>> g.go('http://россия.рф')
<grab.response.Response object at 0x7eff9abe6790>
>>> print g.doc.select('//title').text()
СЕРВЕР ОРГАНОВ ГОСУДАРСТВЕННОЙ ВЛАСТИ РОССИИ
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB