Ответы пользователя по тегу Парсинг
  • Как в grab для python, исключить определенную ноду из обработки?

    exeto
    @exeto Автор вопроса
    front-end developer
    1. Решение:

    from grab import Grab
    from grab.tools.lxml_tools import drop_node
    
    url = 'http://habrahabr.ru/post/241889/'
    xpath = '//div[contains(@class, "content_left")]//div[contains(@class, "content")]'
    drop = '//div[contains(@class, "polling")]'
    
    g = Grab()
    g.go(url)
    page = g.doc.select(xpath)
    drop_node(page.node(), drop)
    
    for element in page:
        print(element.html())


    2. Не знаю почему я сразу не обратил внимание, что grab.doc.select() возвращает итерируемый объект. Вот решение:

    from grab import Grab
    
    g = Grab()
    g.go(url)
    xpath = '//div | //span'
    
    for element in g.doc.select(xpath):
        print(element.html())
    Ответ написан
    Комментировать