123ksnНе, там надо сначала написать склеиватель страниц. А он у тебя есть? Ты, наверное, не в курсе, но при добавлении вакансий они все сдвигаются вправо, и вакансии с четвёртой страницы плавно переходят на пятую, переселяются так незаметно, а бывает, если долго не взаимодействуешь с сайтом, не на пятую, а уже на десятую или там двадцатую. А твой скрипт-то это знает? Нет. Он думает, что все страницы различаются и вакансии там уникальны. Только в результате будет куча копий и ты будешь думать “а что за хрень? почему столько одинаковых вакансий? а как их убрать?” и всё. Закончится всё тем, что надо будет думать, как их по-новому разбирать, потому что этот вариант не подходит. Это называется “подводные камни” - понятие такое.
Просто мне потребовалось получить в удобном виде информацию и теперь могу получать все вакансии за последние сутки (около 45стр*20~900).
123ksnСлушай, он тоже не зря код свой написал. По крайней мере, вот он его выложил, и я могу его прочитать и сказать ему, что у него return'ы у функций сделаны неправильно, потому что в питоне для этого надо использовать исключения, когда ошибки происходят, а всю допольнительную информацию про ошибки вкладывать внутрь этих исключений, потому что исключения - это объекты, у которых можно внутри что-то хранить. Ну, ты наследуешься от ValueError, например, и в подклассе этом своём просто добавляешь поле, к которому ты будешь прикреплять дополнительную информацию и методы для работы с этим полем. Если уж нужно что-то замороченное, то оно делается вот так. А потом ты просто вместо return делаешь raise MyException('error string', data=errordatadict) , а перехватывается оно потом где-нибудь наверху, где прикручен лог в удобном месте, который не мешает нигде и не замусоривает всю программу своими инструкциями повсюду. То есть, выкладывая свой код, xam1816 может получить обратную связь на него, критику разную, конструктивные замечания и узнать что-то новое для себя. Так что даже то, что этот его код тебе не помог, не мешает этому коду принести пользу автору кода по-другому как-то, каким-то другим путём.
Уважаемый xam1816! Мне было проще понять и доработать решение от Gdez под себя чем Ваше. Возможно, предложенное Вами решение более академическое что ли, но , как всегда злосчастное “НО”, Вы не предложили решение, которое нужно было мне.
123ksnВот я посмотрю, что ты будешь говорить, когда тебе надо будет вдруг поправить этот код от Gdez'а. Ты что сделаешь? Ты пойдёшь к нему, скажешь ему “слушай, а как поправить твой код?” и тот тебе скажет “ой, ну я не знаю, я вот только эту версию смог написать, а другую не могу просто, знаний не хватает”. Или же у тебя возникнет новая похожая задача и ты пойдёшь к нему, потому что сам ты не научился, и он не сможет тебе её решить. Так ты будешь сидеть с нерешённой задачей, потому что сам ты не умеешь, а у предыдущего решателя, который раньше успешно решал, на этой задаче мозги сломались, потому что он какую-то тему ещё не изучал.
Просто несколько человек откликнулись на мою проблему и я в порыве восторга высказался об одном из них очень чувственно.
И ты придёшь опять к нам. Понимаешь?
Вот зная это всё наперёд, я и написал тебе первое сообщение, в котором “почему-то” и предложил тебе научиться самому это всё делать и дал расклад, как такие задачи делаются, чтобы ты пальцем в небо не играл в угадайку.