Не удается получить все заголовки из списка с помощью Python WebScraping - PullRequest
0 голосов
/ 10 марта 2019

Я занимаюсь очисткой веб-страниц с помощью Python atm, и я обнаружил проблему, я хотел удалить один веб-сайт, на котором есть список аниме, который я смотрел ранее, но когда я пытаюсь удалить его (с помощью запросов или селена), он получает толькооколо 30 из 110 имен аниме со страницы.Вот мой код с селеном:

from selenium import webdriver
from bs4 import BeautifulSoup

browser = webdriver.Firefox()
browser.get("https://anilist.co/user/Agusmaris/animelist/Completed")
data = BeautifulSoup(browser.page_source, 'lxml')
for title in data.find_all(class_="title"):
    print(title.getText())

И когда я его запускаю, источник страницы отображается только до аниме под названием «Золотое время», когда на странице осталось около 70 или более.

Спасибо

Редактировать: код, который теперь работает благодаря 'supputuri':

from selenium import webdriver
from bs4 import BeautifulSoup
import time

driver = webdriver.Firefox()
driver.get("https://anilist.co/user/Agusmaris/animelist/Completed")
time.sleep(3)
footer = driver.find_element_by_css_selector("div.footer")
preY = 0
print(str(footer))
while footer.rect['y'] != preY:
    preY = footer.rect['y']
    footer.location_once_scrolled_into_view
    print('loading')
html = driver.page_source
soup = BeautifulSoup(html, 'lxml')
for title in soup.find_all(class_="title"):
    print(title.getText())
driver.close()
driver.quit()
ret = input()

Ответы [ 2 ]

0 голосов
/ 10 марта 2019

Вот решение.Обязательно добавьте import time

driver.get("https://anilist.co/user/Agusmaris/animelist/Completed")
time.sleep(3)
footer =driver.find_element_by_css_selector("div.footer")
preY =0
while footer.rect['y']!=preY:
    preY = footer.rect['y']
    footer.location_once_scrolled_into_view
    time.sleep(1)
print(str(driver.page_source))

Это будет повторяться до тех пор, пока не будет загружено все аниме, а затем не получит источник страницы.Дайте нам знать, если это было полезно.

0 голосов
/ 10 марта 2019

Итак, это то, что я получаю, когда загружаю исходный код страницы:

AniListwindow.al_token = 'E1lPa1kzYco5hbdwT3GAMg3OG0rj47Gy5kF0PUmH'; Извините, для AniList требуется Javascript.
Пожалуйста, включите Javascript или http://outdatedbrowser.com>upgrade для современного веб-браузера. Извините, 100 * для * * * не требуется. * 1005 для * *. более новый веб-браузер.

Поскольку я чертовски хорошо знаю, что Javascript включен, и моя версия Chrome полностью обновлена, а указанный URL-адрес ведет на небезопасный веб-сайт для «загрузки» новой версии вашего браузера, я думаю, что это спам-сайт , Не уверен, что вы знали об этом при публикации, поэтому я не буду отмечать как таковой, но я хотел, чтобы вы и другие, кто сталкивался с этим, были в курсе.

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