Лучший способ для новичка научиться чистке экрана с помощью Python - PullRequest
31 голосов
/ 01 декабря 2010

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

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

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

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

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

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

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

Ответы [ 6 ]

47 голосов
/ 01 декабря 2010

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

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

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

11 голосов
/ 01 декабря 2010

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

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

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

3 голосов
/ 03 сентября 2012

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

2 голосов
/ 03 декабря 2010

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

2 голосов
/ 01 декабря 2010

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

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

0 голосов
/ 12 декабря 2013

перед тем, как погрузиться в Scrapy, ознакомьтесь с введением Udacity в компьютерные науки: https://www.udacity.com/course/cs101

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

...