Python爬虫:Selenium基本用法

来自CloudWiki
跳转至: 导航搜索

初始化浏览器对象

在准备工作部分我们提到需要将浏览器渠道添加到环境变量或者指定绝对路径,前者可以直接初始化后者则需要进行指定。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager
# 使用前先导入By类
from selenium.webdriver.common.by import By


browser = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
browser.get(r'https://www.baidu.com') 
#search = browser.find_element_by_id('kw')
search = browser.find_element(By.ID,'kw')
search.send_keys('python')
search.send_keys(Keys.ENTER)

# 关闭浏览器
#browser.close()

可以看到以上是有界面的浏览器,我们还可以初始化浏览器为无界面的浏览器。

from selenium import webdriver

browser = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")

# 无界面的浏览器
#option = webdriver.ChromeOptions()
#option.add_argument("headless")
#browser = webdriver.Chrome(path=path,options=option)

# 访问百度首页
browser.get(r'https://www.baidu.com/')
# 截图预览
browser.get_screenshot_as_file('截图.png')

# 关闭浏览器
browser.close()

访问页面

进行页面访问使用的是get方法,传入参数为待访问页面的URL地址即可。

from selenium import webdriver

# 初始化浏览器为chrome浏览器
browser = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")

# 访问百度首页
browser.get(r'https://www.baidu.com/')

# 关闭浏览器
browser.close()

设置浏览器大小

set_window_size()方法可以用来设置浏览器大小(就是分辨率),而maximize_window则是设置浏览器为全屏!

from selenium import webdriver
import time  

# 初始化浏览器为chrome浏览器
browser = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
 

# 设置浏览器大小:全屏
browser.maximize_window()   
browser.get(r'https://www.baidu.com')  
time.sleep(2)

# 设置分辨率 500*500
browser.set_window_size(500,500)  
time.sleep(2)

# 设置分辨率 1000*800
browser.set_window_size(1000,800) 
time.sleep(2)

# 关闭浏览器
browser.close()

刷新页面

刷新页面是我们在浏览器操作时很常用的操作,这里refresh()方法可以用来进行浏览器页面刷新。

from selenium import webdriver
import time  

# 初始化浏览器为chrome浏览器
browser = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
 

# 设置浏览器全屏
browser.maximize_window()   
browser.get(r'https://www.baidu.com')  
time.sleep(2)

for i in range(0,5):
    try:
        # 刷新页面
        browser.refresh()  
        print('刷新页面')
        time.sleep(2)
    except Exception as e:
        print('刷新失败')
        time.sleep(2)
   
# 关闭浏览器
browser.close()


前进后退

前进后退

前进后退也是我们在使用浏览器时非常常见的操作,这里forward()方法可以用来实现前进,back()可以用来实现后退。

from selenium import webdriver
import time  

# 初始化浏览器为chrome浏览器
browser = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")

# 设置浏览器全屏
browser.maximize_window()   
browser.get(r'https://www.baidu.com')  
time.sleep(2)

# 打开淘宝页面
browser.get(r'https://www.taobao.com')  
time.sleep(2)

# 后退到百度页面
browser.back()  
time.sleep(2)

# 前进的淘宝页面
browser.forward() 
time.sleep(2)

# 关闭浏览器
browser.close()

参考文档:https://mp.weixin.qq.com/s?__biz=MzU4OTYzNjE2OQ==&mid=2247508936&idx=1&sn=eead337e9147a53c390801ddbf88cde2&chksm=fdc894eecabf1df8f1e5925247345909f47a4fe9edd60cb3a7b40bdf1e584080195c8fde69d3&mpshare=1&scene=23&srcid=0204j3QZAUrk5QDOMUstcA1h&sharer_sharetime=1643958579995&sharer_shareid=9a47d948e5a338ea483d560dfedff359#rd