深入理解driver.get方法

一、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/n/142189.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
GUGKGUGK
上一篇 2024-10-10 09:28
下一篇 2024-10-10 09:28

相关推荐

  • ArcGIS更改标注位置为中心的方法

    本篇文章将从多个方面详细阐述如何在ArcGIS中更改标注位置为中心。让我们一步步来看。 一、禁止标注智能调整 在ArcMap中设置标注智能调整可以自动将标注位置调整到最佳显示位置。…

    编程 2025-04-29
  • 解决.net 6.0运行闪退的方法

    如果你正在使用.net 6.0开发应用程序,可能会遇到程序闪退的情况。这篇文章将从多个方面为你解决这个问题。 一、代码问题 代码问题是导致.net 6.0程序闪退的主要原因之一。首…

    编程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一个类的构造函数,在创建对象时被调用。在本篇文章中,我们将从多个方面详细讨论init方法的作用,使用方法以及注意点。 一、定义init方法 在Pyth…

    编程 2025-04-29
  • Python创建分配内存的方法

    在python中,我们常常需要创建并分配内存来存储数据。不同的类型和数据结构可能需要不同的方法来分配内存。本文将从多个方面介绍Python创建分配内存的方法,包括列表、元组、字典、…

    编程 2025-04-29
  • Python中读入csv文件数据的方法用法介绍

    csv是一种常见的数据格式,通常用于存储小型数据集。Python作为一种广泛流行的编程语言,内置了许多操作csv文件的库。本文将从多个方面详细介绍Python读入csv文件的方法。…

    编程 2025-04-29
  • 用不同的方法求素数

    素数是指只能被1和自身整除的正整数,如2、3、5、7、11、13等。素数在密码学、计算机科学、数学、物理等领域都有着广泛的应用。本文将介绍几种常见的求素数的方法,包括暴力枚举法、埃…

    编程 2025-04-29
  • 使用Vue实现前端AES加密并输出为十六进制的方法

    在前端开发中,数据传输的安全性问题十分重要,其中一种保护数据安全的方式是加密。本文将会介绍如何使用Vue框架实现前端AES加密并将加密结果输出为十六进制。 一、AES加密介绍 AE…

    编程 2025-04-29
  • Python学习笔记:去除字符串最后一个字符的方法

    本文将从多个方面详细阐述如何通过Python去除字符串最后一个字符,包括使用切片、pop()、删除、替换等方法来实现。 一、字符串切片 在Python中,可以通过字符串切片的方式来…

    编程 2025-04-29
  • 用法介绍Python集合update方法

    Python集合(set)update()方法是Python的一种集合操作方法,用于将多个集合合并为一个集合。本篇文章将从以下几个方面进行详细阐述: 一、参数的含义和用法 Pyth…

    编程 2025-04-29
  • Vb运行程序的三种方法

    VB是一种非常实用的编程工具,它可以被用于开发各种不同的应用程序,从简单的计算器到更复杂的商业软件。在VB中,有许多不同的方法可以运行程序,包括编译器、发布程序以及命令行。在本文中…

    编程 2025-04-29

发表回复

登录后才能评论