Python第三方库undetected_chromedriver是一个无法被检测到的ChromeDriver库,它可以让我们在使用自动化测试、爬虫等需求时更加隐秘地模拟浏览器,避免被网站封禁。下面是使用undetected_chromedriver的详细攻略:
步骤一:安装undetected_chromedriver
使用pip命令安装undetected_chromedriver库,命令如下:
pip install undetected-chromedriver
步骤二:使用undetected_chromedriver
在使用之前,需要引入库并创建驱动对象。代码如下:
from undetected_chromedriver import ChromeDriver
driver = ChromeDriver()
使用ChromeDriver()创建的驱动对象具有与Selenium自带的WebDriver对象相同的API,可以使用find_element_by_xxx等方法,对网页元素进行定位和操作。
在创建驱动对象时,我们还可以设置相关配置,例如设置User-Agent,如下所示:
options = {
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299"
}
driver = ChromeDriver(options=options)
示例一:使用undetected_chromedriver模拟百度搜索
from undetected_chromedriver import ChromeDriver
import time
# 创建驱动对象
driver = ChromeDriver()
# 打开百度
driver.get("https://www.baidu.com/")
# 定位搜索框并输入关键字
search_input = driver.find_element_by_css_selector("#kw")
search_input.send_keys("undetected_chromedriver")
# 点击搜索按钮
search_button = driver.find_element_by_css_selector("#su")
search_button.click()
# 等待页面加载完成
time.sleep(5)
# 获取搜索结果标题并打印
results = driver.find_elements_by_css_selector(".result .t")
for result in results:
print(result.text)
# 关闭浏览器
driver.quit()
示例二:使用undetected_chromedriver模拟登录GitHub
from undetected_chromedriver import ChromeDriver
import time
# 创建驱动对象
driver = ChromeDriver()
# 打开GitHub登录页面
driver.get("https://github.com/login")
# 登录
username_input = driver.find_element_by_css_selector("#login_field")
username_input.send_keys("your_github_username") # 替换为自己的用户名
password_input = driver.find_element_by_css_selector("#password")
password_input.send_keys("your_github_password") # 替换为自己的密码
login_button = driver.find_element_by_css_selector("[name='commit']")
login_button.click()
# 等待页面加载完成
time.sleep(5)
# 判断是否登录成功
if driver.current_url == "https://github.com/":
print("login success!")
else:
print("login failed.")
# 关闭浏览器
driver.quit()
以上是使用undetected_chromedriver的详细攻略及两个示例说明,希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python第三方库undetected_chromedriver的使用 - Python技术站