Skip to content
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

Closed
wants to merge 1 commit into from

Conversation

temptask
Copy link
Contributor

Раньше, при каждом обновлении прокси-листа, старый лист затирался новым.
Добавил возможность держать старые прокси в списке, а при обновлении просто расширять список проксями, которых ещё нет в списке. (т.е. добавлять только свежие соксы, не дублируя старые)
Также, ранее, при обновлении проксей, итератор каждый раз создавался заново, что влечёт за собой такую ситацию: если время обновления списка относительно маленькое, то итератор не успевает доходить до конца списка и обновляется и , в итоге, последние прокси в списке так и не юзаются. Поэтому сейчас он создаётся единожды, но вместо itertools.cycle использую свой cycle, потому что в itertools список кешируется, т.е. не получится динамически его обновлять.

@lorien
Copy link
Owner

lorien commented Jul 21, 2013

Есть сомнения по поводу этой штуки: keep_old_proxies=False
Раньше ведь лист перезатирался, а сейчас в случае reload получится, что список дополняется.
Кроме этого момента есть и ещё один: мне лично кажется, что логично, что по-умолчанию список перезатирается, а не дополняется.

@temptask
Copy link
Contributor Author

Так в этом и вся суть опции, что список дополняется. А по умолчанию она выключена, т.е. поведение будет как и раньше - перезапись списка.
А нужна это опция, как мне кажется, например в таком случае:
1)вы указали ссылки с проксями
2)скрипт получит прокси
3)не успел воспользоваться всеми и обновил список
4)в новом списке нет тех, что были в старом(которые вы не успели заюзать) -> значит вы потеряли часть проксей

@temptask
Copy link
Contributor Author

но, согласен, случай довольно редкий и возможно мало кому нужный

@lorien
Copy link
Owner

lorien commented Jul 22, 2013

Аа, пардон, я не так прочитал код, мне сначала показалось, что, по-умолчанию, фича включена.

@lorien
Copy link
Owner

lorien commented Oct 3, 2013

Извините, так и не дошли руки до вашего pull request. Скоро буду с нуля переписывать поддержку прокси-листов. Если не трудно напишите сюда чёткие пожелания фунционала, который бы вы хотели получить: https://groups.google.com/forum/#!topic/python-grab/wZ7sfFMXfTs

@lorien
Copy link
Owner

lorien commented Dec 13, 2013

Ну вот дошли у меня руки поработать над грабом. Вот тут зарефакторенный прокси лист и с фичами, о которых вы выше говорили: 397accf

@temptask
Copy link
Contributor Author

Круто, спасибо. Есть ещё идея для прокси-листа, если интересно: добавить возможность передавать список урлов в RemoteFileSource, вместо одного.

@temptask
Copy link
Contributor Author

Вот сделал пулл-реквест с возможностью передавать список урлов #37

@lorien
Copy link
Owner

lorien commented Dec 14, 2013

Не знаю, не знаю. Не люблю, когда в одном аргументе можно и то и это передавать.

@temptask
Copy link
Contributor Author

ну можно тогда только список принимать

@lorien
Copy link
Owner

lorien commented Dec 14, 2013

Есть ещё пара вариантов:

  1. Во-первых, пользователь может несколько раз вызвать set_source + настроить accumulate_update=True
  2. Сделать новый тип proxy source: "multiple_remote" например

Чем вариант номер 1 не нравится?

@temptask
Copy link
Contributor Author

Нормальный вариант, хотя второй вариант кажется более простым в использовании.

@lorien
Copy link
Owner

lorien commented Dec 14, 2013

Хотя конечно первый вариант в описанном мною виде это костыль т.к. может быть пользователь хочет несколько proxy source, но не хочет для них accumulate_update

@lorien lorien closed this May 8, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants