Как прокрутить страницу заданий Google вниз с помощью selenium python

#python-3.x #selenium-webdriver

Вопрос:

Я пытаюсь прокрутить сообщения о заданиях вниз, используя нижеприведенные строки, но иногда это даст правильные результаты для прокрутки вниз до конца, а иногда и нет.

 html = driver.find_element_by_tag_name('html')
time.sleep(5)
html.send_keys(Keys.END)
 

Кто-нибудь может подсказать мне, как прокрутить страницу до конца, пожалуйста, найдите ссылку и скриншот ниже.

 https://www.google.com/search?q=upsc jobs in indiaamp;rlz=1C1CHBF_enIN869IN869amp;oq=upsc joamp;aqs=chrome.1.69i57j0i433i512j0i131i433i512j0i512l3j0i131i433i512l2j0i512j0i433i512amp;sourceid=chromeamp;ie=UTF-8amp;ibp=htl;jobsamp;sa=Xamp;sqi=2amp;ved=2ahUKEwjR27GN_qPzAhX4ppUCHb_0B_QQkd0GegQIORAB#fpstate=tldetailamp;sxsrf=AOaemvIxuJXh3if0tw7ezZfjkXRe5DSxsA:1632911697417amp;htivrt=jobsamp;htidocid=N1_BNfzt8n8auXjGAAAAAA==
 

введите описание изображения здесь

Ответ №1:

Чем больше вы прокручиваете, тем больше данных вы получаете, в основном это динамичный веб-сайт. Я жестко 50 закодировал как фиктивное число, у вас может быть 100 или любое другое число, если на то пошло.

Вы можете использовать пример кода :

 driver = webdriver.Chrome(driver_path)
driver.maximize_window()
driver.implicitly_wait(30)
driver.get("https://www.google.com/search?q=upsc jobs in indiaamp;rlz=1C1CHBF_enIN869IN869amp;oq=upsc joamp;aqs=chrome.1.69i57j0i433i512j0i131i433i512j0i512l3j0i131i433i512l2j0i512j0i433i512amp;sourceid=chromeamp;ie=UTF-8amp;ibp=htl;jobsamp;sa=Xamp;sqi=2amp;ved=2ahUKEwjR27GN_qPzAhX4ppUCHb_0B_QQkd0GegQIORAB#fpstate=tldetailamp;sxsrf=AOaemvIxuJXh3if0tw7ezZfjkXRe5DSxsA:1632911697417amp;htivrt=jobsamp;htidocid=N1_BNfzt8n8auXjGAAAAAA==")
j = 1
for i in range(50):
    element = driver.find_element(By.XPATH, f"(//div[@role='heading'])[{j}]")
    driver.execute_script("arguments[0].scrollIntoView(true);", element)
    j =  j   1
 

Ответ №2:

Вы также можете попробовать прокрутить это до конца.

 driver.get("https://www.google.com/search?q=upsc jobs in indiaamp;rlz=1C1CHBF_enIN869IN869amp;oq=upsc joamp;aqs=chrome.1.69i57j0i433i512j0i131i433i512j0i512l3j0i131i433i512l2j0i512j0i433i512amp;sourceid=chromeamp;ie=UTF-8amp;ibp=htl;jobsamp;sa=Xamp;sqi=2amp;ved=2ahUKEwjR27GN_qPzAhX4ppUCHb_0B_QQkd0GegQIORAB#fpstate=tldetailamp;sxsrf=AOaemvIxuJXh3if0tw7ezZfjkXRe5DSxsA:1632911697417amp;htivrt=jobsamp;htidocid=N1_BNfzt8n8auXjGAAAAAA==")
i = 0
try:
    while True:
        options = driver.find_elements_by_xpath("//div[@role='treeitem']")
        driver.execute_script("arguments[0].scrollIntoView(true);",options[i])
        i =1
        time.sleep(.5)
except:
    pass
 

Комментарии:

1. Действительно ли есть конец ? Я попробовал вручную, и данные продолжали поступать..

2. @cruisepandey — Ну, я видел конец, поэтому предложил этот код.