|
|
|
|
from selenium import webdriver
|
|
|
|
|
from selenium.webdriver.common.by import By
|
|
|
|
|
from selenium.webdriver.support import expected_conditions as EC
|
|
|
|
|
from selenium.webdriver.common.keys import Keys
|
|
|
|
|
from time import sleep
|
|
|
|
|
from selenium.webdriver.edge.service import Service
|
|
|
|
|
from selenium.webdriver.edge.options import Options
|
|
|
|
|
from selenium.webdriver.support.ui import WebDriverWait
|
|
|
|
|
from selenium.common.exceptions import TimeoutException
|
|
|
|
|
options = webdriver.EdgeOptions()
|
|
|
|
|
options.add_argument("--start-maximized") # 最大化窗口
|
|
|
|
|
options.add_argument("--disable-notifications") # 禁用通知
|
|
|
|
|
options.headless = True
|
|
|
|
|
options.add_argument("user-data-dir=C:/Users/JJM/AppData/Local/Microsoft/Edge/User Data/Default") # 使用本地用户数据目录
|
|
|
|
|
options= webdriver.EdgeOptions()
|
|
|
|
|
options.add_experimental_option("detach", True)
|
|
|
|
|
|
|
|
|
|
driver_edge = webdriver.Edge(options=options)
|
|
|
|
|
|
|
|
|
|
my_url = "https://www.douyin.com/"
|
|
|
|
|
|
|
|
|
|
driver_edge.get(my_url)
|
|
|
|
|
sleep(70)
|
|
|
|
|
|
|
|
|
|
# x=driver_edge.find_element(By.XPATH,'//*[@id="login-pannel"]/div[2]')
|
|
|
|
|
# x.click()
|
|
|
|
|
# sleep(10)
|
|
|
|
|
# 模拟点击
|
|
|
|
|
|
|
|
|
|
search_box = driver_edge.find_element(By.XPATH,'//*[@id="douyin-header"]/div[1]/header/div/div/div[1]/div/div[2]/div/div/input').send_keys('zy2752629612',Keys.ENTER)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sleep(20)
|
|
|
|
|
driver_edge.execute_script("window.scrollTo(0, document.body.scrollHeight);")
|
|
|
|
|
sleep(10) # 等待滚动效果
|
|
|
|
|
#f=driver_edge.find_element(By.CLASS_NAME,'B3AsdZT9 BMJLsW6X').click()
|
|
|
|
|
elements = driver_edge.find_elements(By.XPATH, "//*")
|
|
|
|
|
|
|
|
|
|
# 检查每个元素是否可见
|
|
|
|
|
for element in elements:
|
|
|
|
|
if element.is_displayed():
|
|
|
|
|
print(f"元素 {element.tag_name} 可见")
|
|
|
|
|
else:
|
|
|
|
|
print(f"元素 {element.tag_name} 不可见")
|
|
|
|
|
driver_edge.execute_script("arguments[0].style.display = 'block'; arguments[0].style.visibility = 'visible';", element)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
# 等待元素可见,超时设置为5秒
|
|
|
|
|
WebDriverWait(driver_edge, 5).until(
|
|
|
|
|
EC.visibility_of(element)
|
|
|
|
|
)
|
|
|
|
|
print(f"元素 {element.tag_name} 现在可见")
|
|
|
|
|
except TimeoutException:
|
|
|
|
|
print(f"元素 {element.tag_name} 仍然不可见")
|
|
|
|
|
driver_edge.execute_script("arguments[0].scrollIntoView(true);", element)
|
|
|
|
|
sleep(10) # 等待滚动效果
|
|
|
|
|
|
|
|
|
|
# 再次检查元素是否可见
|
|
|
|
|
if element.is_displayed():
|
|
|
|
|
print("元素现在可见")
|
|
|
|
|
else:
|
|
|
|
|
print("元素仍不可见")
|
|
|
|
|
sleep(10)
|
|
|
|
|
h=driver_edge.find_element(By.XPATH,'//*[@id="douyin-right-container"]/div[2]/div/div/div[2]/div[3]/div[3]/div[1]/button[2]')
|
|
|
|
|
h.click()
|
|
|
|
|
# 获取cookie
|
|
|
|
|
cookies = driver_edge.get_cookies()
|
|
|
|
|
for cookie in cookies:
|
|
|
|
|
print(cookie)
|
|
|
|
|
|
|
|
|
|
# 关闭浏览器
|
|
|
|
|
driver_edge.quit()
|