Очистка сайта, который имеет определенные проблемы - PullRequest
0 голосов
/ 18 февраля 2020

Я хочу очистить этот сайт и очистить все статьи этого автора с помощью Python (библиотеки ответов или библиотек Selenium) и поместить их в файл PDF.
Однако, когда я нажимаю на кнопка «Показать больше», расположенная внизу, после 8 раз она больше не отображает больше статей, поэтому я не могу получить к ним доступ (идея заключалась в том, чтобы автоматизировать селен, нажимать на него, пока не будут показаны все статьи, и потом скрести их все). Есть ли обходной путь? Альтернативные способы, которыми я могу получить доступ ко всем статьям в хронологическом порядке и очистить их?
Моя идея состояла в том, чтобы как-то проанализировать, исходят ли ссылки из альтернативного источника, но я ничего не понимаю. Однако я успешно удалил те статьи, которые отображаются.
Заранее спасибо!

1 Ответ

0 голосов
/ 18 февраля 2020

Используйте findElements и ищите <h2 class="css-1j9dxys e1xfvim30">...</h2>, который даст вам список всех названий. Каждый раз, когда вы нажимаете Показать больше, размер списка увеличивается на 10 или около того. Так что идея состоит в том, чтобы просто нажать кнопку, пока размер списка не изменится. Используйте некоторое время l oop. Что-то вроде:

List<WebElements> oldList = Driver.findElements(by.cssSelector("h2.css- 
    1j9dxys.e1xfvim30"));

List<WebElements> newList = new ArrayList<>();

WebElement button = Driver.findElement(by.xpath("//button[text()='Show More']"));

while(newList.size!=oldList.size){
    button.click();
    newList = List<WebElements> newList = Driver.findElements(by.cssSelector("h2.css- 
    1j9dxys.e1xfvim30));
}

У меня могут быть некоторые ошибки в коде, но идея есть. Удачи!

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