juche-songun
Окт. 27, 2012 04:22:47
У меня много поточный парсер и так как 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:
список продолжу
odnochlen
Окт. 27, 2012 04:40:55
pycurl лучше выкинуть, без оберток вроде grab им пользоваться очень неудобно.
Насчет urllib не скажу, но попеарю grab и request, ими пользоваться гораздо приятнее. А для более серьезного парсинга есть другие библиотеки.
juche-songun
Окт. 27, 2012 06:47:32
парсинг простой, загрузка страницы и поиск значения, но выпадают другие запросы по резолву, хотя пинги до них идут.
reclosedev
Окт. 27, 2012 08:33:28
Можно попробовать ограничить количество одновременных соединений, например, с помощью пула потоков.
juche-songun
Окт. 27, 2012 19:47:15
тогда пропадает смысл много поточности.
odnochlen
Окт. 28, 2012 03:11:17
Не пропадет. С неограничеными потоками ты или положишь сайт, или он сам начнет резать соединения.