ФорумПрограммированиеPython → Какими библиотеками для краулинга/парсинга пользуется в питошке?

Какими библиотеками для краулинга/парсинга пользуется в питошке?

  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 20 августа 2015 г. 6:22

    Вот вам список, выбираем оттуда: lorien/awesome-web-scraping [github.com]

    • Пользуюсь:

      • urllib

      • requests

      • urllib3

      • httplib2

      • socket

      • scrapy

      • lxml

      • cssselect

      • html5lib

      • feedparser

      • xlwt/xlrd

      • Python-Markdown

      • Splinter

      • selenium

      • threading

      • multiprocessing

      • celery

      • Twisted

      • Tornado

      • urllib.parse

      • html2text

      • OpenCV

    • Пользовался:

      • grab

      • pycurl

      • mechanize

      • pyspider (щупал только)

      • pyquery (по аналогии с phpquery)

      • BeautifulSoup

      • xhtml2pdf

      • fuzzywuzzy

      • phonenumbers

      • ReportLab

      • PyYAML

      • NLTK (пытался изучать)

      • asyncio

      • gevent

    adw/0
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 20 августа 2015 г. 7:03, спустя 40 минут 21 секунду

    Добавил туда pytils и markdown2

    adw/0
  • Sinkler

    Сообщения: 9658 Репутация: N Группа: в ухо

    Spritz 20 августа 2015 г. 10:04, спустя 3 часа 1 минуту 28 секунд

    красный синий голубой выбирай себе любой

    Спустя 111 сек.

    @adw0rd готовишься к тому, чтобы сделать раздел под сравнения?)

  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 20 августа 2015 г. 10:13, спустя 8 минут 38 секунд

    @Sinkler, блин, я уже забыл про него )

    срочно дуд_мод офф

    adw/0
  • mathete

    Сообщения: 435 Репутация: N Группа: Джедаи

    Spritz 21 августа 2015 г. 13:18, спустя 1 день 3 часа 5 минут

    @adw0rd, после nodejs не хочется краулить на питоне :)

  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 21 августа 2015 г. 13:23, спустя 4 минуты 58 секунд

    @mathete, не пробовал

    Спустя 22 сек.

    Но верю ))

    adw/0
  • ssbb

    Сообщения: 86 Репутация: N Группа: Джедаи

    Spritz 31 августа 2015 г. 23:04, спустя 10 дней 9 часов 40 минут

    @mathete, после ноды хочется только на питоне и краулить.

    Спустя 68 сек.

    Вообще scrapy, но оно не поддерживает тройку (из-за твистеда ofc). Поэтому сейчас играюсь со своими классами в стиле scrapy + asyncio/aiohttp.

    ex. adwo/ad3w @ Philippines, Dumaguete
  • mathete

    Сообщения: 435 Репутация: N Группа: Джедаи

    Spritz 1 сентября 2015 г. 4:57, спустя 5 часов 53 минуты 2 секунды

    @ssbb, ну надо же уметь готовить.

    А так, смотря, что требуется. Если скачать html, по xpath выдрать нужные куски, включая ссылки, чтобы дальше лезть, то да - питон вполне пойдёт.

  • ssbb

    Сообщения: 86 Репутация: N Группа: Джедаи

    Spritz 1 сентября 2015 г. 5:00, спустя 2 минуты 51 секунду

    @mathete, а чего же дает такого нода, чего не дает питон?

    ex. adwo/ad3w @ Philippines, Dumaguete
  • mathete

    Сообщения: 435 Репутация: N Группа: Джедаи

    Spritz 1 сентября 2015 г. 5:32, спустя 32 минуты 40 секунд

    @ssbb, всё сразу асинхронное на уровне платформы (libuv) и javascript.

    По поводу первого можно пытаться юзать всякие gevent и asyncio, но со вторым точно ничего не поделать :)

  • ssbb

    Сообщения: 86 Репутация: N Группа: Джедаи

    Spritz 1 сентября 2015 г. 5:35, спустя 2 минуты 57 секунд

    @mathete, питон может. с 3.4 даже в stdlib, так что это не что-то, что питон "не может" сделать.

    второе - это javascript? нода не рендерит жс. если про фантомы всякие, то и из питона отлично юзается. а если про сам язык, то это скорее минус (раньше был фанатом, пару лет работал в стартапе на ноде, и парсеров там много было).

    ex. adwo/ad3w @ Philippines, Dumaguete
  • mathete

    Сообщения: 435 Репутация: N Группа: Джедаи

    Spritz 1 сентября 2015 г. 5:44, спустя 8 минут 24 секунды

    @ssbb, я не понял ничего...

    1. Что именно "питон может"?

    2. "нода не рендерит жс" o_O. Как можно "рендерить" код на ЯП? Или ты имел в виду, что не исполняет? Как может js движок не исполнять js? При чём тут phantomjs (про него же речь?)?

    Не знаю, какие проблемы в твоём опытё. Я уже год в продакшене использую ноду для краулинга и нарадоваться не могу, тем-более как стали в последние полгода побыстрее развиваться.

  • ssbb

    Сообщения: 86 Репутация: N Группа: Джедаи

    Spritz 1 сентября 2015 г. 5:48, спустя 3 минуты 51 секунду

    @mathete,

    1. асинхронность
    2. да я просто из твоего предложения не понял, что было вторым. имел ввиду, что делать запросы и парсить - нет разницы, на каком языке.

    Так почему же тогда питон только для простеньких парсеров, не понял?

    ex. adwo/ad3w @ Philippines, Dumaguete
  • mathete

    Сообщения: 435 Репутация: N Группа: Джедаи

    Spritz 1 сентября 2015 г. 5:57, спустя 9 минут 19 секунд

    @ssbb,

    1. Есть глобальная разница между - ПОЛНАЯ асинхронность на уровне платформы, которую пилят лет семть и "ну у нас тут были разные библиотечки ТОЛЬКО для асинхронного io, ну и мы тут сделали в стандартную библиотеку asyncio... вроде работает"

    2. Если на странице, которую я краулю javascript и мне надо, чтобы он исполнился, что мне делать, если я на питоне? pyv8? spidermonkey?

  • ssbb

    Сообщения: 86 Репутация: N Группа: Джедаи

    Spritz 1 сентября 2015 г. 10:49, спустя 4 часа 52 минуты 4 секунды

    @mathete, опять же что имеется ввиду под js на странице? просто кусок кода, который можно за 10 минут переписать на любой язык, или когда вся страница строится на js?

    ex. adwo/ad3w @ Philippines, Dumaguete

Пожалуйста, авторизуйтесь, чтобы написать комментарий!