Очистка данных с веб-сайта с использованием Selenium и Java - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь удалить данные с веб-сайта cricinfo и написал метод, который принимает имя игрока и отображает его соответствующие данные.

Если вы видите, что этот метод берет имя игрока и отображает все его данные.

Мое требование - отображать полную карту результатов для всех игроков вместо отображения данных только для одного игрока.

URL

https://www.espncricinfo.com/series/8039/scorecard/1144490/india-vs-south-africa-8th-match-icc-cricket-world-cup-2019

Метод

public static void displayData(WebDriver driver, String input)
{
    WebElement player = driver.findElement(By.xpath("//a[contains(text(),'"+input+"')]"));
    String player_name = player.getText();

    WebElement bowled_by = driver.findElement(By.xpath("//a[contains(text(),'"+input+"')]//parent::div//following-sibling::div[@class='cell commentary']"));
    String bowled_by_detail = bowled_by.getText();

    List<WebElement> score_card = driver.findElements(By.xpath("//a[contains(text(),'"+input+"')]//parent::div//following-sibling::div[@class='cell runs']"));

    System.out.println(player_name);
    System.out.println(bowled_by_detail);

    for(int i=0;i<score_card.size();i++)
    {
        String values = score_card.get(i).getText();

        System.out.print(values + " | ");
    }System.out.println();
}

Выполнение метода

displayData (драйвер, "HM Amla");

Результат

HM Amla c Шарма б Бумра 6 | 9 | 16 | 1 | 0 | 66,66 |

1 Ответ

0 голосов
/ 05 марта 2020

Так же, как BeautifulSoup в python, вы можете использовать Jsoup для просмотра веб-страниц с java, это довольно быстро, и вы можете извлекать данные с помощью селекторов css в соответствии с вашими требованиями.

Нам нужно перейти к блоку элементов, используя селен, у которого есть данные, а затем передать внешний html в jsoup, чтобы выполнить дальнейшую очистку данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...