Python и управление файлами очередей - PullRequest
0 голосов
/ 27 августа 2018

Моя цель - собрать все ссылки на определенный сайт. Этот веб-сайт является ведущим веб-сайтом, посвященным розничной торговле / электронной коммерции, поэтому я ожидаю, что количество ссылок, которые мне нужно собрать, будет очень высоким. Идея состоит в том, чтобы начать с посещения карты сайта и собрать каждую ссылку, доступную на этой странице. Затем для каждой собранной ссылки перейдите по этой ссылке и соберите другую группу ссылок, пока я не получу столько, сколько смогу.

У меня проблема с управлением очередью. Я использовал разные способы для отслеживания моего прогресса, но у меня много путаницы с таким множеством различных факторов, как структура и разные форматы сохранения, кажется, что действительно должны быть какие-то соглашения для этого?

Я нашел несколько разных библиотек, таких как «persist-queue» и стандартная библиотека очередей python, но основные проблемы заключаются в следующем. Я не могу сообразить, как сохранить свою очередь между запусками (так как количество ссылок для сбора очень велико), и при следующем запуске программы мне нужно иметь возможность начать с того места, где я остановился, и в то же время динамически добавление дополнительных ссылок в эту очередь, которые еще не были оценены.

Есть много разных компонентов, которые разбросаны по всей моей программе, поэтому ниже приведен лишь отрывок из тех способов, которыми я пытаюсь это сделать. В основном я делаю несколько серий проверок для правильной обработки этих данных, например:

        for souplink in collectedlinks:
            if souplink == '': continue
            if rawsouplink in list_completerawlink: continue
            if souplink in read_listlinks: continue
            if not souplink in list_accumulated:
                file_todo.write(souplink+'\n')

Любая помощь приветствуется

1 Ответ

0 голосов
/ 27 августа 2018

Возможно, вы захотите просто использовать Scrapy , которая сделает большую часть этого для вас.

Ознакомьтесь с документацией для экстракторов ссылок и Broad Crawls .

...