Comments (19)
Глянул код, видимо, не поддерживаются. Там не трудно реализовать, просто по
аналогии с 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.
Неужели XPath удобнее? Я сделаю конечно, но ведь раньше поинт был именно в упрощении таких типичных реализаций.
from grab.
Я использую исключительно 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.
Надо попробовать. В конце-концов полно инструментов-конвертеров селекторов.
from grab.
Поддержу
Везде и всегда использовал 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.
подписываюсь под каждым словом smant 👍
from grab.
можно еще так делать:
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.
Что, скорее всего идеологически правильно, тк это как бы декомпозиция кода и данных.
from grab.
Если там 3 селектора то как угодно можно сделать, если там 300 то метаться от списка к месту использования во время отладки -- не самая хорошая идея, даже если это поддерживает ИДЕ
from grab.
Объявляй часть селекторов в обработчике таким же словарем. Тогда не придется метаться.
from grab.
никогда не юзал эти ксс селекторы. форкните да добавьте ) чо как маленькие.
from grab.
Да никому они не нужны на самом деле, это разный синтаксис одной и той же задачи, я воспользовался автоматической конвертацией и использовал xpath, потом начал брать selector из scrapy, все оно совместимо со всем на уровне тело ответа -- текст
from grab.
300 селекторов, это где такое? и тут декомпозиция нужна либо несколько скраперов, либо выносить эти селекторы в отдельные файлы по группам. когда 300 штук в коде это какой-то атас.
from grab.
посмотрел в последнем проекте 5 штук чтобы спуститься по иерархии и где-то на глаз 20-30 чтобы вытащить данные из целевых страниц.
from grab.
Просто вынести селекторы куда-то из места где они используются это еще не декомпозиция кода и данных. Зачем городить огород, тем более если их не много?
from grab.
Енивей, я не спорю, лишь говорю что трудности ради слов это глупо.
from grab.
В грабе ещё такое есть, только оно недокументировано :)
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.
Лориен надо доки переводить у меня иностранцы спрашивают постоянно, но обламываются на документации.
from grab.
Частично 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)
- Remove multicurl transport HOT 1
- empty request headers and body in *.log files when using log_dir option
- spider: impossible to setup grab transport HOT 2
- Can i use grab with async? HOT 1
- Segmentation fault 11 HOT 2
- import error in windows HOT 2
- Typo in documentation HOT 1
- Support ubuntu 19.04 / python3.7 and python3.8 HOT 3
- How to filter duplicate urls HOT 2
- Deprecation warning for defusedxml.lxml HOT 1
- Fix simple typo: shuld -> should
- In Windows XP HOT 9
- Не устанавливается в Линукс HOT 7
- похоже метод в Thread isAlive() был переименован в is_alive() в Python 3.9.0 HOT 2
- On the github page the link to http://grablib.org/ seems broken. HOT 1
- Why not have any new releases on PyPi ? HOT 4
- Failed pycurl/resolve/cookies test
- Fix tests for python 3.10: SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats HOT 2
- Wrong Thread method for Python 3.9.0+ HOT 1
- Fix grammar/spelling errors in README.md
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from grab.