Я пытаюсь создать инструмент webscraper с помощью приложения Windows Form. Есть ли API или метод для отображения точной позиции xpath выбранного текста? До сих пор я написал код, который позволяет выделить текст на навигационном веб-сайте в элементе управления webbrowser и вывести выделенный выделенный текст в richtextbox с помощью ContextMenuStrip.Есть ли способ получить позицию Xpath выделенного текста с помощью приложения Windows Form в C#?
Код я написал ниже:
private void getSelectedTextToolStripMenuItem_Click(object sender, EventArgs e)
{
IHTMLDocument2 htmlDocument = webBrowser1.Document.DomDocument as IHTMLDocument2;
IHTMLSelectionObject currentSelection = htmlDocument.selection;
if (currentSelection != null)
{
IHTMLTxtRange range = currentSelection.createRange() as IHTMLTxtRange;
if (range != null)
{
richTextBox1.Text = range.htmlText;
}
Кнопка переходит на веб-сайте ниже:
private void button1_Click(object sender, EventArgs e)
{
this.webBrowser1.Navigate("https://uk.finance.yahoo.com/q?s=%5EFTSE");
webBrowser1.DocumentCompleted +=
webBrowser1_DocumentCompleted;
}
До сих пор это именно то, что я хочу, чтобы это сделать. Однако теперь я хочу получить позицию xpath того, что выделено, а не просто выводить текстовое содержимое. Идея состоит в том, что если я хочу извлечь данные в реальном времени (, то есть данные о рынке на веб-странице Yahoo Finance), данные на веб-сайте постоянно меняются, поэтому мне интересно получить позицию в структуре страницы html. Любые идеи о том, возможно ли это и какие шаги я должен выполнить?