Code Monkey home page Code Monkey logo

Comments (19)

lorien avatar lorien commented on July 29, 2024

Глянул код, видимо, не поддерживаются. Там не трудно реализовать, просто по
аналогии с XpathSelect надо сделать CssSelector.

2 декабря 2013 г., 20:31 пользователь Mikhail Sedletsky <
[email protected]> написал:

Как-то не ясно, тестов при беглом осмотре тоже не заметно

Reply to this email directly or view it on GitHubhttps://github.com//issues/32
.

WBR, Gregory Petukhov (http://datalab.io)

from grab.

sedletsky avatar sedletsky commented on July 29, 2024

Неужели XPath удобнее? Я сделаю конечно, но ведь раньше поинт был именно в упрощении таких типичных реализаций.

from grab.

lorien avatar lorien commented on July 29, 2024

Я использую исключительно xpath. Некоторые вещи через css не сделать, а
миксовать xpath и css мне не нравится. Для себя я решил работать только с
xpath - особых проблем не испытываю.

2 декабря 2013 г., 21:15 пользователь Mikhail Sedletsky <
[email protected]> написал:

Неужели XPath удобнее? Я сделаю конечно, но ведь раньше поинт был именно в
упрощении таких типичных реализаций.

Reply to this email directly or view it on GitHubhttps://github.com//issues/32#issuecomment-29620234
.

WBR, Gregory Petukhov (http://datalab.io)

from grab.

sedletsky avatar sedletsky commented on July 29, 2024

Надо попробовать. В конце-концов полно инструментов-конвертеров селекторов.

from grab.

smant avatar smant commented on July 29, 2024

Поддержу
Везде и всегда использовал css_one, css_list, css_text
Пробовал перейти на Xpath (видел что Григорий запилил только XpathSelect понятно стало, что css селекторы "не в чести".)
Заставлял себя заставлял.. ничего не вышло, не прёт, css селекторы намного проще, быстрее писать, понятнее, копактнее...

Парсер всегда ориентируется на вёрстку, а в вёрстке классы или если повезёт id
в xpath приходится городить типа '//[@Class=".product_list"]//[@Class=".product"]'
оно в основании цикла, не влазит по длинне и приходится его переносить на новую строку, код становится некрасивым... бе.., когда можно написать в 2 раза короче и красивее '.product_list .product'

Ну а в целом, большой проблемы нет, xpath не сложнее css селекторов, просто некрасивый, почему то он у меня ассоциируется с "мерзким" форматом XML и вместе с ним MS ))

from grab.

skabbit avatar skabbit commented on July 29, 2024

подписываюсь под каждым словом smant 👍

from grab.

oiwn avatar oiwn commented on July 29, 2024

можно еще так делать:

    xpath_list = {
        'states_list': '//div[@id="ListByState"]//a',
        'cities_abc': '//div[@id="TopSeoSilos"]//li[@class="char"]//a',
        'cities_list': '//div[@id="TopSeoSilos"]//li[not(@class)]//a',
    }

    def gs(self, xpath_name, grab):
        return grab.doc.select(self.xpath_list[xpath_name])

from grab.

oiwn avatar oiwn commented on July 29, 2024

Что, скорее всего идеологически правильно, тк это как бы декомпозиция кода и данных.

from grab.

sedletsky avatar sedletsky commented on July 29, 2024

Если там 3 селектора то как угодно можно сделать, если там 300 то метаться от списка к месту использования во время отладки -- не самая хорошая идея, даже если это поддерживает ИДЕ

from grab.

oiwn avatar oiwn commented on July 29, 2024

Объявляй часть селекторов в обработчике таким же словарем. Тогда не придется метаться.

from grab.

oiwn avatar oiwn commented on July 29, 2024

никогда не юзал эти ксс селекторы. форкните да добавьте ) чо как маленькие.

from grab.

sedletsky avatar sedletsky commented on July 29, 2024

Да никому они не нужны на самом деле, это разный синтаксис одной и той же задачи, я воспользовался автоматической конвертацией и использовал xpath, потом начал брать selector из scrapy, все оно совместимо со всем на уровне тело ответа -- текст

from grab.

oiwn avatar oiwn commented on July 29, 2024

300 селекторов, это где такое? и тут декомпозиция нужна либо несколько скраперов, либо выносить эти селекторы в отдельные файлы по группам. когда 300 штук в коде это какой-то атас.

from grab.

oiwn avatar oiwn commented on July 29, 2024

посмотрел в последнем проекте 5 штук чтобы спуститься по иерархии и где-то на глаз 20-30 чтобы вытащить данные из целевых страниц.

from grab.

sedletsky avatar sedletsky commented on July 29, 2024

Просто вынести селекторы куда-то из места где они используются это еще не декомпозиция кода и данных. Зачем городить огород, тем более если их не много?

from grab.

sedletsky avatar sedletsky commented on July 29, 2024

Енивей, я не спорю, лишь говорю что трудности ради слов это глупо.

from grab.

lorien avatar lorien commented on July 29, 2024

В грабе ещё такое есть, только оно недокументировано :)
https://github.com/lorien/grab/blob/master/grab/item/__init__.py

25 января 2014 г., 17:45 пользователь Mikhail Sedletsky <
[email protected]> написал:

Просто вынести селекторы куда-то из места где они используются это еще не
декомпозиция кода и данных. Зачем городить огород, тем более если их не
много?

Reply to this email directly or view it on GitHubhttps://github.com//issues/32#issuecomment-33286180
.

WBR, Gregory Petukhov (http://datalab.io)

from grab.

oiwn avatar oiwn commented on July 29, 2024

Лориен надо доки переводить у меня иностранцы спрашивают постоянно, но обламываются на документации.

from grab.

lorien avatar lorien commented on July 29, 2024

Частично english доки есть в docs2, правда я там даже до спайдера не дошёл.
Описал Grab наполовину или чуть больше.

26 января 2014 г., 13:08 пользователь istinspring
[email protected]написал:

Лориен надо доки переводить у меня иностранцы спрашивают постоянно, но
обламываются на документации.

Reply to this email directly or view it on GitHubhttps://github.com//issues/32#issuecomment-33310238
.

WBR, Gregory Petukhov (http://datalab.io)

from grab.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.