Подтвердить что ты не робот

Лучший способ для новичков научиться скрипированию экрана с помощью Python

Это может быть один из тех вопросов, которые трудно ответить, но здесь говорится:

Я не считаю себя программистом - но я хотел бы:-) Я узнал R, потому что я устал от spss, а потому, что друг познакомил меня с языком, поэтому я не полный незнакомца с логикой программирования.

Теперь я хотел бы изучить python - прежде всего, для очистки экрана и анализа текста, но также для написания webapps с Pylons или Django.

Итак: Как мне научиться экранировать скребок с помощью python? Я начал просматривать лоскутные документы, но я чувствую, что происходит много "магии" - в конце концов - я пытаясь учиться, а не просто.

С другой стороны: нет причин изобретать колесо, и если Scrapy будет экранировать выскакивание того, что Django принадлежит к веб-страницам, тогда это может стоить прыгать прямо в Scrapy. Как вы думаете?

О - BTW: вид скрипинга экрана: я хочу очистить газетные сайты (т.е. довольно сложные и большие) за упоминания политиков и т.д. - Это означает, что мне нужно будет ежедневно царапаться, постепенно и рекурсивно - и мне нужно регистрируйте результаты в виде базы данных, которые приводят меня к бонусу: все говорят о nonSQL DB. Должен ли я научиться использовать, например, mongoDB сразу (я не думаю, что мне нужна сильная последовательность), или это глупо для того, что я хочу делать?

Спасибо за любые мысли - и я приношу свои извинения, если это для общего, чтобы считаться вопросом программирования.

4b9b3361

Ответ 1

Я согласен, что документы Scrapy вызывают это впечатление. Но я считаю, что, когда я нашел для себя, что, если вы терпеливы с помощью Scrapy и сначала изучаете учебники, а затем хороните себя в остальной части документации, вы не только начнете лучше понимать разные части для Scrapy, но вы по достоинству оцените, почему он делает то, что он делает, как он это делает. Это основа для написания пауков и скриншотов экрана в реальном смысле рамки. Вам все равно придется изучать XPath, но я считаю, что лучше всего научиться этому независимо. В конце концов, вы намереваетесь очищать веб-сайты, а понимание того, что такое XPath и как это работает, только облегчит вам работу.

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

BeautifulSoup - замечательная библиотека Python, которая может использоваться для очистки веб-сайтов. Но, в отличие от Scrapy, это не кадр любыми способами. Для небольших проектов, где вам не нужно вкладывать время в письменной форме надлежащего паука и иметь дело с отказом от большого количества данных, вы можете обойтись с помощью BeautifulSoup. Но для чего-то еще, вы только начнете ценить то, что предлагает Scrapy.

Ответ 2

Похоже, что Scrappy использует XPATH для обхода DOM, который является языком и может быть несколько загадочным в течение некоторого времени. Я думаю, что BeautifulSoup даст вам быстрый старт. С lxml вам придется вкладывать больше времени на обучение, но он обычно считается (не только мной) лучшей альтернативой BeautifulSoup.

Для базы данных я предлагаю вам начать с SQLite и использовать его до тех пор, пока вы не нажмете на стену и не будете нуждаться в чем-то более масштабируемом (чего, возможно, никогда не произойдет, в зависимости от того, как далеко вы хотите пойти с этим), после чего вы знаете, какое хранилище вам нужно. Mongodb определенно переборщил на этом этапе, но удобство в использовании SQL - очень полезный навык.

Вот пятистрочный пример, который я дал некоторое время назад для иллюстрации мотыги BeautifulSoup. Какой лучший язык программирования для написания веб-бота?

Ответ 3

Мне очень нравится BeautifulSoup. Я новичок в Python, но довольно легко начал очищать экран. Я написал краткий учебник по скрипит экран с красивым супом. Надеюсь, это поможет.

Ответ 4

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

Я думаю, что решения no-sql здесь останутся для разных приложений. Мы реализовали их в различных проектах, над которыми я работал в течение последних 20 лет внутри баз данных SQL, без дублирования его без sql, чтобы приложения существовали. Поэтому стоит по крайней мере получить некоторые сведения о том, что они предлагают и какие продукты работают на сегодняшний день.

Хорошо спланируйте свой проект и сохраните слой persistence отдельно, и вы сможете с легкостью изменить решение своей базы данных, если вы решите, что необходимо.

Ответ 5

Я рекомендую начинать более низкий уровень во время обучения - скрипирование - это основа высокого уровня. Прочтите хорошую книгу Python, например Погрузитесь в Python, затем посмотрите lxml для разбора HTML.

Ответ 6

перед погружением в Scrapy возьмите введение Udacity в информатику: https://www.udacity.com/course/cs101

Это отличный способ познакомиться с Python, и вы действительно научитесь Scrapy намного быстрее, если у вас есть базовые знания Python.