Форум сайта python.su
0
Всем привет, есть такой элемент
<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)
Офлайн
857
Не 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)
Офлайн
0
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)
Офлайн
857
aydatЗачем тебе вообще эта динамическая часть? Она никакой роли там не играет. Что картинку, что value можно вообще без учёта динамической части скачать.
Как через grab можно скачать картинку и забирать value, если id динамический?
Офлайн
0
py.user.next
Отредактировано aydat (Дек. 1, 2016 16:19:43)
Офлайн
0
Актуально…..
Офлайн
857
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' >>>
Офлайн
0
py.user.nextСпасибо, вроде получилось
Отредактировано aydat (Дек. 2, 2016 12:00:10)
Офлайн