gpt4 book ai didi

python - 如何获取下一页的Page Source

转载 作者:行者123 更新时间:2023-11-28 22:13:27 24 4
gpt4 key购买 nike

我想做的是将驱动程序转换为 html,以便使用漂亮的汤。问题是 prettifier(又名驱动程序中的那个)正在打印的项目是登录页面的 html,而不是后面的那个(我确定登录成功,以及导航到下一页)。

驱动程序包含第一页的源代码而不更新我们导航到的页面是否有原因?

这是我的代码:

import os
import random
import sys

from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

url = 'https://www.instagram.com/gelsonfonteles/followers/'
driver = webdriver.Chrome()
driver.implicitly_wait(1)
driver.get(url)


username = driver.find_element_by_xpath('//*[@name="username"]')
password = driver.find_element_by_xpath('//*[@name="password"]')
login_btn = driver.find_element_by_xpath('//*[@class="_0mzm- sqdOP L3NKy "]')

username.send_keys("name")
password.send_keys("pass")

#login
login_btn.click()
driver.implicitly_wait(2)

soup = BeautifulSoup(driver.page_source,features="lxml")
print(soup.prettify())

driver.quit()

最佳答案

driver.implicitly_wait(2) 在这种情况下是无用的。您需要使用 explicit wait .例如

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

login_btn.click()
WebDriverWait(driver, 10).until(EC.url_changes('https://www.instagram.com/accounts/login/?next=/gelsonfonteles/followers/')) # pass exact URL of Login page
soup = BeautifulSoup(driver.page_source,features="lxml")

EC.url_changes 允许等待指定的 URL 发生变化。

您也可以等待某个特定元素出现在所需页面上

关于python - 如何获取下一页的Page Source,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53947373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com