предмет соскоба с питоном, содержащий частичный текст - PullRequest
0 голосов
/ 25 сентября 2019

Я хочу извлечь конкретный элемент из таблицы HTML, это мой текущий код:

tabela  = soup.find("div", {"class" : "productDatatable"})
>>> tabela

<div class="productDatatable">\n<div>\r\n            Category:\r\n                        <span class="productDatatableValue">\n<a href="/en/market/mt5/utility">Utilities</a>\n</span>\n</div>\n<div title="Number of activations available for the buyers of this application. During the activation, software product is bound to the buyer's hardware, so that the copy of the application cannot work on another PC. The application should be re-activated and downloaded again in order to launch it on another computer. If the activation limit is exceeded, the buyer will have to purchase the product again.">\r\n            Activations:\r\n                        <span class="productDatatableValue">\r\n                            5\r\n                        </span>\n</div>\n<div style="padding:5px;"></div>\n<div>\r\n            Author:\r\n                        <span class="productDatatableValue">\n<span style="display: inline-block; vertical-align: middle; margin-top: -2px;"><span class="icoVerified small" title="Verified User"></span></span>\n<span title="Konstantin Chernov"><a class="author" href="/en/users/konstantin83" title="Konstantin83">Konstantin Chernov</a></span>\n</span>\n</div>\n<div>\r\n            Published:\r\n                        <span class="productDatatableValue">\r\n                            16 January 2013\r\n                        </span>\n</div>\n<div>\r\n            Current version:\r\n                        <span class="productDatatableValue">1.55</span>\n</div>\n<div>\r\n            Updated:\r\n                        <span class="productDatatableValue">\r\n                            23 March 2015\r\n                        </span>\n</div>\n</div>

Как я могу извлечь название категории из этого вывода HTML.Я попробовал это, но не работает.

tabela.find_element_by_xpath("//*[contains(text(), 'Category')]").find("span", {"class" : "productDatatable"}).text

Как я могу получить категорию из этого HTML?мне нужен вывод Utilities

Ответы [ 2 ]

0 голосов
/ 25 сентября 2019

Попробуйте, пожалуйста

tabela.find_element_by_xpath("/html/body/div[1]/div[3]/div[2]/div[1]/div[2]/div[4]/div[1]/span/a").text
0 голосов
/ 25 сентября 2019

Для возврата Utilities, который находится внутри тега привязки, а не span. Попробуйте ниже код Beautifulsoup. ИЗМЕНЕНО:

from bs4 import BeautifulSoup
import requests
response=requests.get("https://www.mql5.com/en/market/product/635").text
soup=BeautifulSoup(response,'html.parser')
tabela  = soup.find("div", class_="productDatatable").find('span', class_="productDatatableValue").find('a')
print(tabela.text)

ИЗДАНО:

Если вы хотите использовать селен, используйте следующий xpath со ссылкой на категорию

print(browser.find_element_by_xpath("//div[contains(.,'Category')]/span[@class='productDatatableValue']/a").text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...