Задать вопрос
BelBES
@BelBES

Как получить текст элемента при помощи selenium в python?

Всем привет,

Пишу парсер для выдачи google на python при помощи selenium.
Мне нужно распарсить JSON вот такого элемента:
{"cl":12,"cr":3,"id":"JAoZEfikv3d7yM:","isu":"moistimidtran.blogspot.com","ity":"jpg","oh":334,"ou":"farm4.static.flickr.com/3239/2594001090_b5b9fb0ef6.jpg","ow":500,"pt":"moistimidtran: people walking down the street","rid":"Hu_70STTJA3k4M","ru":"moistimidtran.blogspot.com/2010/11/people-walking-...","s":"people walking down the street","th":183,"tu":"https://encrypted-tbn1.gstatic.com/images?q\u003dt...","tw":275}


Все такие элементы я выбираю при помощи:
e = browser.find_elements_by_class_name('rg_meta')

Потом бегу по списку всех найденых и вывожу текст:
for img in imgs:
    print img.text


но выводятся только пустые строки.
Пробовал добавлять .encode('utf-8') после text, но это не помогло.
Может кто-то сталкивался с такой проблемой и знает как её побороть? Заранее спасибо
  • Вопрос задан
  • 3225 просмотров
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
@GeneD88
QA
import ast
from selenium import webdriver

wd = webdriver.Firefox()
wd.get('https://goo.gl/knrjOl')
all_pics = wd.find_elements_by_xpath("//div[@class='rg_meta']")
try:
    for pic in all_pics:
        a = ast.literal_eval(wd.execute_script("return arguments[0].innerHTML", pic))
        if "ou" in a.keys():
            print a["ou"]
finally:
    wd.close()
    wd.quit()
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@mipan
Не знаю какой в python api. В java это выглядит так:
WebElement.getAttribute("textContent");

upd:
вот тут посмотрите - yizeng.me/2014/04/08/get-text-from-hidden-elements...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект