一、driver.get_cookies
driver.get_cookies()方法返回當前網站的所有cookie,我們可以將其保存下來,在下次打開該網站時使用:
from selenium import webdriver import pickle driver = webdriver.Chrome() driver.get('http://www.baidu.com') # 獲取cookie pickle.dump(driver.get_cookies(), open('baidu_cookies.pkl', 'wb')) driver.quit() # 載入cookie driver = webdriver.Chrome() driver.get('http://www.baidu.com') cookies = pickle.load(open('baidu_cookies.pkl', 'rb')) for cookie in cookies: driver.add_cookie(cookie) driver.get('http://www.baidu.com')
二、driver.net作用
driver.net可以訪問一些網站直接展示出來的API(例如新浪微博的API),通過這些API,我們可以獲取到網站中的一些數據,但是一些API可能需要登錄後才可以使用,此時需要添加cookie。
三、driver.net傳遞參數
driver.net方法中可以傳遞一些參數,例如header。
from selenium import webdriver import requests driver = webdriver.Chrome() driver.get('http://www.baidu.com') cookies = driver.get_cookies() cookie_dict = {item['name']:item['value'] for item in cookies} headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3', 'Cookie': ';'.join([name + '=' + value for name, value in cookie_dict.items()]) } url = 'https://www.baidu.com/' response = requests.get(url, headers=headers) print(response.status_code)
四、driver.get()
driver.get()方法的本質是向瀏覽器發送GET請求,並等待響應返回。該方法會阻塞程序,直到網頁載入完成。
五、driver.get(url)
driver.get(url)方法的本質和driver.get()一樣,只不過url需要傳入方法參數中。
from selenium import webdriver driver = webdriver.Chrome() driver.get('http://www.baidu.com')
六、driver.get前後兩次
我們可以使用driver.get()方法多次訪問同一個網站,例如:
from selenium import webdriver driver = webdriver.Chrome() driver.get('http://www.baidu.com') driver.get('http://www.baidu.com')
上述代碼訪問了兩次百度,實際上第二次訪問時,我們可以獲得緩存在瀏覽器中的一些數據,例如頁面上的input框內容、瀏覽器cookie等。
七、driver.get打開2個窗口
我們可以用driver.get()方法打開兩個不同的窗口,並在兩個不同的窗口上運行操作,例如:
from selenium import webdriver driver = webdriver.Chrome() driver.get('http://www.baidu.com') # 打開新窗口 driver.execute_script("window.open('http://www.sina.com')") driver.switch_to.window(driver.window_handles[-1]) print(driver.current_url) # 切換回原來的窗口 driver.switch_to.window(driver.window_handles[0]) print(driver.current_url)
八、driver.get(url)用法
driver.get(url)方法中的url可以是絕對路徑或相對路徑。
from selenium import webdriver import os chromedriver = "D:\chromedriver\chromedriver.exe" os.environ["webdriver.chrome.driver"] = chromedriver driver = webdriver.Chrome(chromedriver) # 打開絕對路徑 file_path = 'file:///' + os.path.abspath('test.html') driver.get(file_path) # 打開相對路徑 driver.get('test.html')
九、driver.get為什麼會空白網頁
通常出現空白網頁的原因為:網頁響應過於緩慢或者網頁存在一些非同步載入數據並未載入完全。
十、driver.get(url)打不開網頁
如果driver.get(url)方法打不開網頁,可以檢查以下問題:
1、網路是否連接正常
2、網站是否已經關閉
3、網站是否限制國內IP訪問
4、網站的DNS解析是否成功
若以上問題都排除了,可以嘗試使用代理伺服器再次訪問。
原創文章,作者:GUGK,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/142189.html