Форум сайта python.su
Всем привет. В Python совсем новичок, возникла необходимость стянуть некоторую информацию, решил попрактиковаться на пример стягивания погоды. Хочу поюзать именно либу Grab. Например с хабры тянет нормально по xpath, вот пример:
from grab import Grab g = Grab() g.go('http://habrahabr.ru/') xpath = '/html/body/div[2]/div[3]/div[1]/h2' simple = g.doc.select(xpath) print(simple.text())
from grab import Grab g = Grab() g.go('http://rp5.ru/Weather_in_Moscow,_Russia') xpath = '/html/body/table/tbody/tr[2]/td/div/div/div[2]/div[2]/div[12]/div[1]/div/span[1]' simple = g.doc.select(xpath) print(simple.text())
Отредактировано hvppydvddy (Июнь 16, 2015 13:40:56)
Офлайн
hvppydvddy
зачем писать так
'/html/body/table/tbody/tr[2]/td/div/div/div[2]/div[2]/div[12]/div[1]/div/span[1]'
'//div[@id="ArchTemp"]'
Отредактировано sander (Июнь 16, 2015 14:26:50)
Офлайн
sander
Вроде сработало, только маленько не ту цифру тащит, но это я разберусь, видимо с таким же классом есть еще что-то, на 2 градуса привирает. А как можно доставать подобный путь? Может какое-нибудь расширение умеет?
Офлайн
hvppydvddy
самый простой способ открыть исходник страницы и посмотреть, а если не хочется работать с xpath - есть BeatifulSoup
Офлайн
sander
Не, названия классов то понятно, тот же Firebug их отображает только в путь. У меня сложности именно в правильности набора, всякие нюансы типа // или @… Хотя наверное проще начитаться как рожать xpath))) Хотя мой вариант вроде же корректный
'/html/body/table/tbody/tr[2]/td/div/div/div[2]/div[2]/div[12]/div[1]/div/span[1]'
Офлайн
sander
Все, разобрался, для Firebug есть еще один аддон, называется FirePath, он как раз формирует xpath в нужном виде.
Офлайн