Ответы пользователя по тегу lxml
  • Как парсить курс Биткоина (BTC/USDT) в Python через LXML?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    ("//*[@id='__APP']/div//*[@class='showPrice']/text()")

    вот тут у тебя лажа, пропиши правильный путь, если он вообще достижим без JS и Websocket
    Ответ написан
    5 комментариев
  • Библиотека lxml создаёт свой запрос и не хранит сессию?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    вот только что написал ответ:

    https://qna.habr.com/q/1119656

    нет никаких сессиий, не существует, это абстракция: на физическом уровне есть POST /GET запросы и куки

    для их освоения придумали POSTMAN (ну и прочие insomnia), попрактикуйся

    да, в requests и bs есть "сессии", для удобства, синтаксический сахар, магия - не нужно на такое полагаться
    Ответ написан
  • С каких книг начать?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    обычный парсинг не катит, там вебсокеты
    Ответ написан
  • Как получить текст data-url в теге a?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    вместо
    text()
    @data-url
    Ответ написан
    Комментировать
  • Как достать текст из самого вложенного элемента html (lxml lib)?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    если уверен, что текст только в итоговом вложенном
    tree = html.fromstring(HTMLstring)
    for line in tree.xpath('.//span[@class="ocr_line"]'):
        for item in line.xpath('.//text()'):
            print(item)


    иначе - целься в текст

    tree = html.fromstring(HTMLstring)
    for line in tree.xpath('.//span[@class="ocr_line"]'):
        for item in line.xpath('.//text()[contains(.,"A")]'): # crAzy
            print(item)
        for item in line.xpath('.//text()[contains(.,"E")]'): # English
            print(item)
    Ответ написан
    5 комментариев
  • Как работать с xpath в lxml Python?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    вот такое, с номерами
    div[1] tr[2]
    плохая практика, нужно уметь без них
    это во вторых

    а во первых, где ты в коде view-source:myip.ru DOM дерево нашел?
    там же сплошной JS
    Ответ написан
    7 комментариев
  • Как достать данные?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    скачай файл на локальный и внимательно прочитай статью и видео, это изменит твой подход
    prostoitblog.ru/xpath-i-css/kak-sostavlyat-xpath-i...

    писать пути вида
    html/body/table/tbody/tr[1]/td/center/table[7]/tbody/tr/td/table/tbody/tr/td[5]
    очень плохой признак - одно изменение на странице/ в таблице, и вся нумерация идет лесом

    учись составлять выражения по типу регекспов: строить путь, который совпадет на твоем участке
    Ответ написан
    4 комментария
  • Как вы ставите модули в Python? Как поставить этот?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    1) ставить рекомендую из PyCharm, в целом все то же самое, зависимости он тоже подтягивает, но устроено посимпатичнее (например на 2.7 32bit этот newspaper поставился без вопросов одним кликом)

    2) некоторые модули зависят от других модулей, и, конечно, скачивают их при установке через pip, но не всегда могут поставить. Тогда нужно смотреть в логи и ставить эти зависимости вручную/непосредственно (тоже из PyCharm, но разбирать индивидуально, почему какая не поставилась - например, не скачалась или еще что)

    3) и, наконец, и зависимости из п.2 и сами модули могут зависить от компиляции C++ ного кода. Тут, как правило, будет засада: иногда он сходу-то и под Linux не собирается ( потому что уже в C++ коде есть зависимости, разрядность та же)), ну а под Windows совсем мрачно: тут на помощь приходят готовые инсталляторы, которые уже содержат скомпилированные Dll ки, ставятся они инсталлером, как правило, и после установки вполне себе видны в PyCharm, после чего можно смело ставить зависящие от них.

    Исходя из п.3 вы должны понимать, что шансы поставить модуль, зависящий от Сишного кода, прямо пропорциональны Вашему умению пользоваться Гуглом или Вашему опыту в C компилировании. Говоря проще - если инсталлятор не найдете - поставить нереально.

    Например, PyCurl для 64 битной винды существует только версии 7.19, а последний - 7.19.5, разница на деле огромна - последний поддерживает уникод, а первый нет, в итоге не работает нормально, например, GrabLib. Также практически нет под третий питон некоторых старых компилирующихся (по-моему, SciPy только под 2,7 и т.п.). Также под Винду просто нет некоторых новомодных, например, aiohttp (этот может и есть, но вот связанных с ним точно нет, т.е. особо с асихроном не поиграете). Популярный lxml отсутствует под 64 бита и т.д.

    Поэтому использовать Linux вам придется. Оригинально "совместимость" решают в Kivy - под Винду дают скачать виртуалку с Линуксом. Можетее от нее и оттолкнуться, разрядность только проверьте.

    Примерно так же пишет/рассказывает автор Python the hard way - у него в первых уроках ставится Виртуалка, и дальше все на ней.

    Но! Не забывайте, что Python это и GUI приложения ( и игры), а их аудитория живет на Windows, поэтому проблему нужно знать со всех сторон, и отказываться от Windows ("я поставил Линук и все пофиг") нельзя.
    Ответ написан
    1 комментарий