New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Добавление возможности накопления проксей между их обновлениями #9
Conversation
Есть сомнения по поводу этой штуки: keep_old_proxies=False |
Так в этом и вся суть опции, что список дополняется. А по умолчанию она выключена, т.е. поведение будет как и раньше - перезапись списка. |
но, согласен, случай довольно редкий и возможно мало кому нужный |
Аа, пардон, я не так прочитал код, мне сначала показалось, что, по-умолчанию, фича включена. |
Извините, так и не дошли руки до вашего pull request. Скоро буду с нуля переписывать поддержку прокси-листов. Если не трудно напишите сюда чёткие пожелания фунционала, который бы вы хотели получить: https://groups.google.com/forum/#!topic/python-grab/wZ7sfFMXfTs |
Ну вот дошли у меня руки поработать над грабом. Вот тут зарефакторенный прокси лист и с фичами, о которых вы выше говорили: 397accf |
Круто, спасибо. Есть ещё идея для прокси-листа, если интересно: добавить возможность передавать список урлов в RemoteFileSource, вместо одного. |
Вот сделал пулл-реквест с возможностью передавать список урлов #37 |
Не знаю, не знаю. Не люблю, когда в одном аргументе можно и то и это передавать. |
ну можно тогда только список принимать |
Есть ещё пара вариантов:
Чем вариант номер 1 не нравится? |
Нормальный вариант, хотя второй вариант кажется более простым в использовании. |
Хотя конечно первый вариант в описанном мною виде это костыль т.к. может быть пользователь хочет несколько proxy source, но не хочет для них accumulate_update |
Раньше, при каждом обновлении прокси-листа, старый лист затирался новым.
Добавил возможность держать старые прокси в списке, а при обновлении просто расширять список проксями, которых ещё нет в списке. (т.е. добавлять только свежие соксы, не дублируя старые)
Также, ранее, при обновлении проксей, итератор каждый раз создавался заново, что влечёт за собой такую ситацию: если время обновления списка относительно маленькое, то итератор не успевает доходить до конца списка и обновляется и , в итоге, последние прокси в списке так и не юзаются. Поэтому сейчас он создаётся единожды, но вместо itertools.cycle использую свой cycle, потому что в itertools список кешируется, т.е. не получится динамически его обновлять.