Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 27, 2012 04:22:47

juche-songun
Зарегистрирован: 2012-10-26
Сообщения: 42
Репутация: +  -2  -
Профиль   Отправить e-mail  

urllib(2,3), pycurl в много поточности

У меня много поточный парсер и так как urlib(2) и pycurl, ибо у каждой свои проблемы и в основном просто не выдерживают такое количество потоков и лезут всякие проблемы в таком духе:

  • 6, "Couldn't resolve host
    Name or service not known",
    7, "couldn't connect to host",
    7, ‘Failed to connect to 2a00:1158:0:300:d377::1: Network is unreachable’"
    56, ‘Recv failure: Connection reset by peer’
    77, ‘Problem with the SSL CA cert (path? access rights?)’
    18, ‘transfer closed with outstanding read data remaining’
    28, ‘Operation timed out after 60001 milliseconds with 0 bytes received’
    52, ‘Empty reply from server’
    1, ‘Protocol htttp not supported or disabled in libcurl’ да,да,да он где-то затерялся в середине.
    18, ‘transfer closed with outstanding read data remaining’
    56, ‘Received problem 3 in the chunky parser’
    18, ‘transfer closed with 141919 bytes remaining to read’
а вот такое вылазит в urlib3
WARNING  HttpConnectionPool is full, discarding connection:
список продолжу

Отредактировано juche-songun (Окт. 27, 2012 04:31:14)

Офлайн

#2 Окт. 27, 2012 04:40:55

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

urllib(2,3), pycurl в много поточности

pycurl лучше выкинуть, без оберток вроде grab им пользоваться очень неудобно.

Насчет urllib не скажу, но попеарю grab и request, ими пользоваться гораздо приятнее. А для более серьезного парсинга есть другие библиотеки.

Офлайн

#3 Окт. 27, 2012 06:47:32

juche-songun
Зарегистрирован: 2012-10-26
Сообщения: 42
Репутация: +  -2  -
Профиль   Отправить e-mail  

urllib(2,3), pycurl в много поточности

парсинг простой, загрузка страницы и поиск значения, но выпадают другие запросы по резолву, хотя пинги до них идут.

Офлайн

#4 Окт. 27, 2012 08:33:28

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

urllib(2,3), pycurl в много поточности

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

Офлайн

#5 Окт. 27, 2012 19:47:15

juche-songun
Зарегистрирован: 2012-10-26
Сообщения: 42
Репутация: +  -2  -
Профиль   Отправить e-mail  

urllib(2,3), pycurl в много поточности

тогда пропадает смысл много поточности.

Офлайн

#6 Окт. 28, 2012 03:11:17

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

urllib(2,3), pycurl в много поточности

Не пропадет. С неограничеными потоками ты или положишь сайт, или он сам начнет резать соединения.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version