Форум сайта python.su
Всем привет, есть такой элемент
<img src="/bitrix/tools/captcha.php?captcha_code=07d851f5f4fcb59cbaf9c4092fcc0546" alt="">
//*[@id="voting_current_6174_form"]/form/div[2]/div[1]/img
//*[starts-with(@id, "voting_current_")]/form/div[2]/div[1]/img
Отредактировано aydat (Дек. 1, 2016 09:48:13)
Офлайн
Не xpatch, а xpath (XML Path Language).
Приведи всю форму, src - это обычный атрибут. Атрибут обозначается через @.
>>> import lxml.html >>> >>> doc = lxml.html.fromstring('<img src="/bitrix/tools/captcha.php?captcha_code=07d851f5f4fcb59cbaf9c4092fcc0546" alt="">') >>> >>> doc.get('src') '/bitrix/tools/captcha.php?captcha_code=07d851f5f4fcb59cbaf9c4092fcc0546' >>> >>> doc.xpath(r'../img/@src') ['/bitrix/tools/captcha.php?captcha_code=07d851f5f4fcb59cbaf9c4092fcc0546'] >>> >>> doc.xpath(r'../img/@src')[0] '/bitrix/tools/captcha.php?captcha_code=07d851f5f4fcb59cbaf9c4092fcc0546' >>>
Отредактировано py.user.next (Дек. 1, 2016 13:44:36)
Офлайн
py.user.next
Не xpatch, а xpath (XML Path Language).Приведи всю форму, src - это обычный атрибут. Атрибут обозначается через @.
<input type="hidden" name="bxajaxid" id="bxajaxid_d8c2e0b8b9a6ff4de550b84d88e8d2bc_11548" value="d8c2e0b8b9a6ff4de550b84d88e8d2bc">
Отредактировано aydat (Дек. 1, 2016 15:37:28)
Офлайн
aydatЗачем тебе вообще эта динамическая часть? Она никакой роли там не играет. Что картинку, что value можно вообще без учёта динамической части скачать.
Как через grab можно скачать картинку и забирать value, если id динамический?
Офлайн
py.user.next
Отредактировано aydat (Дек. 1, 2016 16:19:43)
Офлайн
Актуально…..
Офлайн
aydatТам часть id, которая не меняется, уже содержит строку, равную value. И сама ссылка тоже.
value нужна для пост запроса
>>> import lxml.html >>> >>> text = """ ... <input type="hidden" name="bxajaxid" id="bxajaxid_d8c2e0b8b9a6ff4de550b84d88e8d2bc_11548" value="d8c2e0b8b9a6ff4de550b84d88e8d2bc"> ... """ >>> >>> doc = lxml.html.fromstring(text) >>> value = doc.xpath(r'../input[starts-with(@id, "bxajaxid_")]/@value')[0] >>> value 'd8c2e0b8b9a6ff4de550b84d88e8d2bc' >>>
Офлайн
py.user.nextСпасибо, вроде получилось
Отредактировано aydat (Дек. 2, 2016 12:00:10)
Офлайн