Grab: различия между версиями

Содержимое удалено Содержимое добавлено
HOC (обсуждение | вклад)
HOC (обсуждение | вклад)
Строка 59:
print g.xpath_text('//*')
</source>
В результате вы получите весь текст со страницы yandexYandex.<br>
Часто требуется получения текста из одного элемента. Например, статус пользователя вконтакте или мониторинг цены товара (как промышленный шпион). Поставьте расширение для браузера firebug. Правой клавишей становитесь на тексте и выбираете Inspect element with Firebug. После того как проанализировали элемент, снова пкм, выбираете copy xPath. Получится что-то вроде этого:
<source lang="python">
print g.xpath_text('//tr/td[2]/div/div[2]/ol/li')
</source>
== Получаем линк ==
Если приведенный пример не сработает, это значит, что grab не может найти класс линка. Они часто меняются. Чтобы узнать новый класс, надо поставить расширение для браузера firebug. Правой клавишей становитесь на линк и выбираете Inspect element with Firebug.
<source lang="python">
from grab import Grab
import logging
logging.basicConfig(level=logging.DEBUG)
g = Grab()
g.go('python.org')
print g.xpath('//a[@class="reference external"]').get('href')
</source>
Мы получим первый линк из класса reference external. <code>>>> /psf/license/</code><br>
Для получения всех линков, надо писать цикл.
 
= Ссылки =