"""
目前使用requests模塊可以完成大部分爬蟲功能,
但是當你目標網站的請求流程非常復雜時,分析請求流程需要花費大量的時間.
selenium模塊
是一個自動化測試模塊,主要用於測試頁面的穩定性
與爬蟲的關系
通過selenium模塊可以直接操作瀏覽器來完成與服務器的交互,爬蟲程序中就
不需要關系具體請求細節
使用步驟
1.安裝selenium
2.瀏覽器的驅動程序
"""
# import selenium
from selenium import webdriver
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By #按照什么方式查找,By.ID,By.CSS_SELECTOR
from selenium.webdriver.common.keys import Keys #鍵盤按鍵操作
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait #等待頁面加載某些元素
driver = webdriver.Chrome(r"D:\脫產三期視頻\爬蟲3\chromedriver.exe")
driver.get("https://www.baidu.com")
# 找到輸入框
tag = driver.find_element_by_id("kw")
print(tag)
# 輸入關鍵字
tag.send_keys("老男孩")
# wait = WebDriverWait(driver, 10,0.5)
# wait.until(EC.presence_of_element_located((By.ID, '3'))) # 等到id
time.sleep(2)
# 從搜索結果頁面獲取某個標簽
# content = driver.find_element_by_id("3")
# 通過類名查找 找到第一個
# res = driver.find_element_by_class_name("result")
# print(res.text)
# res = driver.find_elements_by_class_name("result")
# print(res)
# driver.find_element_by_id()
# driver.find_elements_by_id()
# res = driver.find_elements_by_css_selector(".result")
# print(res)
# driver.find_elements_by_css_selector()
# res = driver.find_element_by_tag_name("div")
# ress = driver.find_elements_by_tag_name("div")
# print(ress)
# res = driver.find_element_by_link_text("老男孩_百度百科")
# print(res.get_attribute("href"))
# 通過部分的鏈接標題 查找a標簽
# res = driver.find_element_by_partial_link_text("老男孩_")
# print(res.get_attribute("href"))
# print(content)
res = driver.find_element(By.PARTIAL_LINK_TEXT,"百度百科")
print(res)
# 獲取屬性
print(res.get_attribute("class"))
# 獲取文本
print(res.text)
print(res.tag_name)
# 一頓操作后 關閉瀏覽器
driver.close()