Я ищу часть веб-страницы, которая выходит:
<TR class='title'><TD colspan=3 bgcolor=#C0C0C0>Order number 6097279</TD></TR>
Я хочу вытащить номер, который меняется каждый раз из текста (например: «Номер заказа 6097279» дает мнестрока '6097279')
Я пробовал следующее и получаю сообщение об ошибке «невозможно найти элемент»:
order_number = order_products.find_element_by_xpath("//TR[@class='title']");
Трассировка выглядит следующим образом:
in call_orderpage(https://www.daz3d.com/i/account/orderdetail?order=8104987)
Failed!
Error (NoSuchElementException): Message u'Unable to locate element: {"method":"xpath","selector":"//tr[@class=\'title\']"}'
Program finished!
Изменение TR
на tr
не имеет значения.
Почему это не работает?У меня есть другие поиски find_element_by_xpath, которые используют 'class = phrasing, и они работают.
Код, который я использую:
order_number = order_products.find_element_by_xpath("//TR[@class='title']");
Согласно тому, что я прочитал, элемент xpathимена не чувствительны к регистру.Но я получаю ту же ошибку в любом случае.
Ответ, который я получаю:
Что касается не "принятия" ответов, я прошу прощения за это - частьиз-за незнания, что я должен был, другая часть в том, что я не получаю уведомления, когда был ответ.
Я вернусь и внесу исправление.
====================================
Изменить, чтобы ответить на gfortune ...
Я обновил ваш вопрос информацией, которую вы указали в ответе.В будущем либо ответьте здесь в комментарии, либо отредактируйте свой вопрос напрямую и обновите его, чтобы он содержал дополнительную информацию.Редактирование вашего вопроса - лучший подход.Я отправил изменения для рецензирования, так что надеюсь, что скоро появится.К сожалению, мы все еще не нашли достаточного количества контекста для вашего вопроса.А) Какую библиотеку вы используете?Б) Больше кода.Одна строка, вероятно, не достаточно.C) Больше информации на странице, которую вы анализируете.В идеале, очень короткий контрольный пример, который вызывает ошибку.- gfortune
Честно говоря, мелкий шрифт на панели «комментарии» трудно читать.Кроме того, я не получаю уведомления о том, что был получен ответ ...
В любом случае, я не использую lxml - потому что я не понял, что это было.Теперь, когда у меня есть идея получше, я посмотрю, как это работает, спасибо.
Переменная order_products - это просто субблок всего html - это та часть, которая содержит hrtml, с которым мне нужно работать.На самой странице есть много подсписков ссылок и прочего, которые мне не нужны.Я выделил это, чтобы меньше беспокоиться при поиске нужных мне данных.
И я подумал, что опубликовал исправление моего кода, который сработал - вот и снова.
order_number = order_products.find_element_by_xpath("//tr[@class='title even']");
Вы заметите «даже название» вместо класса «заголовок» ... firepath показал мне этот скрытый бит, который сбивал меня с толку и поиск xpath ...
Мой код для работы с этим стал:
order_number = order_products.find_element_by_xpath("//tr[@class='title even']");
order_number = order_number.text
order_number = order_number.replace('Order number ', '')
print '\nOrder number [' + order_number + ']'
, который отделяет номер от «Номер заказа» ...