爬虫之selenium的使用

本文详细介绍了如何安装Selenium和ChromeDriver,并提供了基本的使用教程,包括元素定位、等待策略等内容,适合初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

驱动的安装:

1.在http://npm.taobao.org/mirrors/chromedriver/中寻找chrome的驱动,进行安装
2.windows中将chrome.exe加入环境变量中
3.再把下载的chromedriver复制粘贴到你安装的python的Scripts目录下,

测试是否安装成功:

from selenium import webdriver
browser = webdriver.Chrome()

selenium的安装:

pip3 install selenium
1.打开一个网页
browser.get(url)

browser.get(“https://www.baidu.com”)

2.对元素进行查找定位
browser.find_element()

通过下面几种方式进行查找定位

login_form = driver.find_element_by_xpath("/html/body/form[1]")
login_form = driver.find_element_by_id('loginForm')
username = driver.find_element_by_name('username')
continue_link = driver.find_element_by_link_text('Continue')
heading1 = driver.find_element_by_tag_name('h1')
content = driver.find_element_by_class_name('content')
content = driver.find_element_by_css_selector('p.content')
3.等待

有的时候元素的出现需要等待一段时间,等元素加载完成后才开始进行下一步的操作,或者为了防止操作过于频繁,这个时候就需要用到等待了

显示等待
driver = webdriver.Firefox()
driver.get("http://somedomain/url_that_delays_loading")
try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
    )

上面这种情况就是等待ID为"myDynamicElement"的出现,如果等待10秒后没有出现,那么就报异常

隐示等待

隐式等待在执行动作或者定位元素之前,为浏览器对象创建一个等待时间,期间会一直刷新页面去寻找我们需要的元素

driver.implicitly_wait(10)
driver.find_element_by_name().send_keys()

上述这段代码为等待10秒

显示等待与隐式等待的区别?

显示等待为有条件的等待
隐式等待为没有条件的等待
也就是显示等待会判断某个元素有没有满足我们的要求,也就是能不能定位,能不能可视化,而隐式等待适用于整个页面的元素有没有出现

好了, 有了这上面的应该就够用了,其他的可以找selenium的API来查找,链接如下selenium-python文档

### 使用 Selenium 实现 Python 爬虫自动登录 为了实现使用 Selenium 进行 Python 爬虫自动登录的功能,可以按照如下方法编写代码: #### 导入必要的模块并初始化 WebDriver 首先需要导入 `webdriver` 模块来控制浏览器行为。 ```python from selenium import webdriver # 从selenium导入webdriver [^2] ``` 接着设置 Chrome 浏览器驱动路径,并创建一个新的浏览器实例。 ```python driver_path = 'path/to/chromedriver' # 需要替换为实际 chromedriver 路径 browser = webdriver.Chrome(executable_path=driver_path) ``` #### 访问目标网并输入用户名密码 打开指定的目标网址,在面加载完成后找到对应的表单元素填充账号信息。 ```python login_url = "https://example.com/login" browser.get(login_url) username_input = browser.find_element_by_name('username') password_input = browser.find_element_by_name('password') username_input.send_keys('your_username') # 替换成自己的用户名 password_input.send_keys('your_password') # 替换成自己的密码 ``` #### 提交表单完成登录动作 定位到提交按钮点击它以触发登录请求。 ```python submit_button = browser.find_element_by_css_selector('.btn-login') # 假设类名为 .btn-login 的按钮是提交按钮 submit_button.click() ``` 以上就是利用 Selenium 库让 Python 程序模仿人类操作浏览器的过程[^1]。需要注意的是不同网站的具体结构可能有所差异,因此上述代码中的选择器表达式应当依据实际情况调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值