Python操作网页

Python操作网页

  • 1、环境要求:
    • 1)模块要求:**selenium**
    • 2)模块安装:
    • 3) 驱动下载
  • 2、启动浏览器
  • 3、启动网站
  • 4、经典案例分析
    • 1)刷新当前页面:
    • 2)获得当前窗口的窗口句柄:
    • 3) 最大化窗体
    • 4)切换到选择的 iframe
    • 5)切换标签页
    • 6)屏幕截图
  • 5、声明

1、环境要求:

python

1)模块要求:selenium

import os
import time
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait

2)模块安装:

pip install selenium

3) 驱动下载

官方支持的浏览器
Python操作网页_第1张图片
google 淘宝源驱动:传送门
opera 淘宝源驱动:传送门
火狐 淘宝源驱动:传送门
Edge 微软源驱动 :传送门
版本选择请保持和当前浏览器版本相同的驱动程序

本文测试采用Google浏览器,其他浏览器大同小异

2、启动浏览器

# chromedriver的文件位置
chrome_driver_path = 'chromedriver.exe' 
driver = webdriver.Chrome(executable_path = chrome_driver_path)

3、启动网站

url="http://baidu.com"
driver.get(url)

4、经典案例分析

1)刷新当前页面:

driver.refresh()

2)获得当前窗口的窗口句柄:

driver.switch_to.window(driver.window_handles[-1])
driver.current_window_handle

3) 最大化窗体

某些特定的网站需要进行最大化,才能获取内部的元素

driver.maximize_window()

4)切换到选择的 iframe

内嵌网站时,使用switch_to.frame 切换到该位置进行操作

# 通过 id 切换框架
driver.switch_to.frame("iframe")

5)切换标签页

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

# 启动驱动程序
chrome_driver_path = 'chromedriver.exe'
driver = webdriver.Chrome(executable_path = chrome_driver_path )
# 打开网址
driver.get("https://blog.csdn.net/wenming111")
# 设置等待
wait = WebDriverWait(driver, 10)
# 存储原始窗口的 ID
original_window = driver.current_window_handle
# 检查一下,我们还没有打开其他的窗口
assert len(driver.window_handles) == 1
# 单击在新窗口中打开的链接
driver.find_element_by_class_name(".blog-list-box").click()
# 等待新窗口或标签页
wait.until(EC.number_of_windows_to_be(2))
# 循环执行,直到找到一个新的窗口句柄
for window_handle in driver.window_handles:
    if window_handle != original_window:
        driver.switch_to.window(window_handle)
        break
# 等待新标签页完成加载内容
wait.until(EC.title_is("博客排行榜"))

6)屏幕截图

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://blog.csdn.net/wenming111")
# 截屏
driver.save_screenshot('./image.png')

5、声明

1)本文来源项目实践,文章存在任何问题或疑问,请留言,感谢您的阅读!
2)原创不易,转载请标注来源,感谢!
3)made in wmgis

你可能感兴趣的:(python,python,爬虫)