一、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-hk/n/142189.html
微信掃一掃
支付寶掃一掃