Selenium库
Selenium介绍
Selenium:
自动化测试:Selenium 最初是为了自动化 web 应用程序的测试而设计的。它可以在多个浏览器中执行测试脚本,以验证 web 应用的功能。
Web 爬虫:Selenium 可以用于抓取动态内容,因为它能够执行 JavaScript 并与网页进行交互。
自动化任务:例如自动登录、填写表单、点击按钮等操作,Selenium 可以实现自动化处理。
Selenium优点
强大的定位元素功能:支持多种定位方式(如 ID, Name, XPath, CSS Selector 等),可以精确定位网页元素。
处理动态内容:能够处理 JavaScript 渲染的动态页面,这是纯 HTTP 请求库(如 requests)无法做到的。
Selenium缺点
易被检测:由于其模拟浏览器行为,容易被目标网站检测和屏蔽。
资源消耗大:占用较多系统资源(如 CPU 和内存),对大规模爬取任务不太友好。
速度较慢:由于需要启动浏览器并进行页面渲染,速度较使用纯 HTTP 请求的爬虫工具慢。
chromedriver 驱动下载地址:chromedriver
下载后的文件解压后的chromedriver.exe文件复制到,电脑Python安装目录下的Scripts文件夹下即可。
如:D:\python\istall\Scripts
常用函数和方法
浏览器操作:
操作含义webdriver.Chrome()启动 Chrome 浏览器。webdriver.Firefox()启动 Firefox 浏览器。driver.get(url)打开指定 URL 的网页。driver.quit()关闭浏览器并结束会话。
元素定位:
操作含义driver.find_element(By.ID, ‘id’)通过 ID 定位元素。driver.find_element(By.NAME, ‘name’)通过 name 定位元素。driver.find_element(By.XPATH, ‘xpath’)通过 XPath 定位元素。driver.find_element(By.CSS_SELECTOR, ‘css_selector’)通过 CSS 选择器定位元素。
元素交互:
操作含义element.click()点击元素。element.send_keys(‘text’)向元素输入文本。element.clear()清除输入框中的内容。
等待:
操作含义driver.implicitly_wait(time)隐式等待,设置一个全局等待时间。WebDriverWait(driver, time).until(condition)显式等待,直到某个条件成立。比time.sleep()要好很多,避免多余等待和等待时间过少。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
element = WebDriverWait(driver,10).until(
EC.presence_of_element_located((By.ID,'element_id')))
浏览器导航:
操作含义driver.back()回到上一页。driver.forward()前进到下一页。driver.refresh()刷新当前页面。
反爬措施
模拟真实用户行为:使用随机的等待时间(如 time.sleep(random.uniform(1, 3))),避免每次请求时间固定。
使用代理:更换 IP 地址,避免同一 IP 短时间内发出大量请求。
修改请求头:如 User-Agent,模拟不同的浏览器和设备。
处理 CAPTCHA:使用第三方服务或人工手动处理验证码。
规避检测:避免使用明显的自动化工具特征(如 webdriver 特征),可以通过修改浏览器指纹等方式来隐藏 Selenium 的使用。
通过以上措施,可以提高爬虫的隐蔽性,降低被目标网站检测和封锁的风险。
版权归原作者 ※星~※ 所有, 如有侵权,请联系我们删除。