'''
*********************
****此次文件全是案例,根據需要提取相應的 那個代碼
*********************
'''
from selenium import webdriver
import time
def a():
b=webdriver.Chrome()
b.get('https://www.baidu.com/')
time.sleep(3)
b.quit()
if __name__=='__main__':
a()
'''selenium 使用代理'''
from selenium import webdriver
options = webdriver.ChromeOptions() # 创建一个配置对象
options.add_argument('--proxy-server=http://ip:端口') # 使用代理ip
driver = webdriver.Chrome(chrome_options=options) # 实例化带有配置的driver对象
driver.get('https://movie.douban.com/')
print(driver.title)
driver.quit()
'''selenium 替換user-agent'''
from selenium import webdriver
options = webdriver.ChromeOptions() # 创建一个配置对象
options.add_argument('--user-agent=Mozilla/5.0 HAHA') # 替换User-Agent
driver = webdriver.Chrome('./chromedriver', chrome_options=options)
driver.get('https://movie.douban.com/')
print(driver.title)
driver.quit()
'''selenium 無界面模式'''
from selenium import webdriver
options = webdriver.ChromeOptions() # 创建一个配置对象
options.add_argument("--headless") # 开启无界面模式
options.add_argument("--disable-gpu") # 禁用gpu
# options.set_headles() # 无界面模式的另外一种开启方式
driver = webdriver.Chrome(chrome_options=options) # 实例化带有配置的driver对象
driver.get('https://movie.douban.com/')
print(driver.title)
driver.quit()
'''手动实现页面等待'''
import time
from selenium import webdriver
driver = webdriver.Chrome('/home/worker/Desktop/driver/chromedriver')
driver.get('https://www.taobao.com/')
time.sleep(1)
# i = 0
# while True:
for i in range(10):
i += 1
try:
time.sleep(3)
element = driver.find_element_by_xpath('//div[@class="shop-inner"]/h3[1]/a')
print(element.get_attribute('href'))
break
except:
js = 'window.scrollTo(0, {})'.format(i*500) # js语句
driver.execute_script(js) # 执行js的方法
driver.quit()
''' 隱式等待'''
from selenium import webdriver
driver = webdriver.Chrome()
driver.implicitly_wait(10) # 隐式等待,最长等20秒
driver.get('https://www.baidu.com')
driver.find_element_by_xpath()
'''selenium 控制瀏覽器執行js 代碼'''
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://movie.douban.com/")
time.sleep(1)
js = 'window.scrollTo(0,document.body.scrollHeight)' # js语句
driver.execute_script(js) # 执行js的方法
time.sleep(3)
driver.quit()
''' selenium 獲取頁面内ifream 内的内容 '''
#switch_to切换frame标签
#iframe是html中常用的一种技术,即一个页面中嵌套了另一个网页,selenium默认是访问不了frame中的内容的,
#对应的解决思路是driver.switch_to.frame(frame_element)
#示例:
import time
from selenium import webdriver
driver = webdriver.Chrome()
url = 'https://mail.qq.com/cgi-bin/loginpage'
driver.get(url)
time.sleep(2)
login_frame = driver.find_element_by_id('login_frame') # 根据id定位 frame元素
driver.switch_to.frame(login_frame) # 转向到该frame中
driver.find_element_by_xpath('//*[@id="u"]').send_keys('账号@qq.com')
time.sleep(2)
driver.find_element_by_xpath('//*[@id="p"]').send_keys('密码')
time.sleep(2)
driver.find_element_by_xpath('//*[@id="login_button"]').click()
time.sleep(2)
"""操作frame外边的元素需要切换出去"""
windows = driver.window_handles
driver.switch_to.window(windows[0])
content = driver.find_element_by_class_name('login_pictures_title').text
print(content)
driver.quit()
'''selenium标签页的切换 '''
#获取所有标签页的窗口句柄
#利用窗口句柄字切换到句柄指向的标签页
#这里的窗口句柄是指:指向标签页对象的标识
#具体的方法:
# 1. 获取当前所有的标签页的句柄构成的列表
current_windows = driver.window_handles
# 2. 根据标签页句柄列表索引下标进行切换
driver.switch_to.window(current_windows[0])
示例:
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
time.sleep(1)
driver.find_element_by_id('kw').send_keys('python')
time.sleep(1)
driver.find_element_by_id('su').click()
time.sleep(1)
# 通过执行js来新开一个标签页
js = 'window.open("https://www.sogou.com");'
driver.execute_script(js)
time.sleep(1)
# 1. 获取当前所有的窗口
windows = driver.window_handles
time.sleep(2)
# 2. 根据窗口索引进行切换
driver.switch_to.window(windows[0])
time.sleep(2)
driver.switch_to.window(windows[1])
time.sleep(6)
driver.quit()
收集到的 pyton 脚本爬虫 案例
最新推荐文章于 2024-07-16 05:41:49 发布
文章介绍了如何在Selenium中使用ChromeDriver进行网页自动化测试,包括设置代理、替换User-Agent、启用无界面模式,以及实现页面等待、隐式等待、执行JS代码、处理Iframe内容和标签页切换的技术细节。
摘要由CSDN通过智能技术生成