Найти - Пользователи
Полная версия: помогите пожалуйста с GRAB
Начало » Python для новичков » помогите пожалуйста с GRAB
1
Dathy
 # coding: utf-8
from grab import Grab
g = Grab()
g.setup(reuse_cookies=False)
g.go('https://yandex.ru')
im=g.doc.select('/html/body/div[1]/div[3]/div/div[3]/div/div/div/a/img')
print im.attr('src')

пытаюсь получить ссылку на картинку баннера в яндексе и grab пишет: weblib.error.DataNotFound: Could not get first item for /html/body/div/div
/div/div/div/div/div/a/img query of class XpathSelector…
Подскажите пожалуйста что не так?
Dathy
Получается grab не видит js код? или как это понимать?
py.user.next
  
>>> from grab import Grab
>>> 
>>> g = Grab()
>>> g.setup(reuse_cookies=False)
>>> 
>>> g.go('https://yandex.ru')
<grab.document.Document object at 0xb6e3f714>
>>> 
>>> im = g.doc.select('body/div[1]/div[3]/div/div[3]/div/div/div/div/noscript/a/img')
>>> data = im.attr('src')
>>> print data[:24]
https://awaps.yandex.net
>>>

Просто не надо использовать прямые пути, потому что они могут меняться админами без уведомления пользователей.

Используй относительные пути (почитай про xpath)
  
>>> from grab import Grab
>>> 
>>> g = Grab()
>>> g.setup(reuse_cookies=False)
>>> 
>>> g.go('https://yandex.ru')
<grab.document.Document object at 0xb6ec3714>
>>> 
>>> im = g.doc.select('..//noscript/a/img')
>>> data = im.attr('src')
>>> print data[:24]
https://awaps.yandex.net
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB