您当前的位置: 首页 >  selenium

潇洒白羊

暂无认证

  • 7浏览

    0关注

    68博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

稳扎稳打学爬虫08—Selenium的使用方法详解

潇洒白羊 发布时间:2022-06-13 01:05:41 ,浏览量:7

1 搭建环境 1.1 安装 selenium
pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple
1.2 安装浏览器驱动

可以参考另一篇文章**“chromedriver下载与安装方法**” https://blog.csdn.net/one_bird_/article/details/131592362 整体步骤如下: 在这里插入图片描述 下载路径: http://npm.taobao.org/mirrors/chromedriver/

2 示例
# 让 selenium 启动谷歌浏览器
from selenium import webdriver 
# from selenium.webdriver import Chrome
# 1、创建浏览器对象
web = webdriver.Chrome() 
# web = Chrome()
#2、打开一个网址
web.get("http://www.baidu.com")
3 设置无头浏览器
from selenium.webdriver import Chrome
#准备好参数配置
opt  = Options()
opt.add_argument('--headless')
opt.add_argument('--disable-gpu')

web = Chrome(options = opt) #把参数配置设置到浏览器中,就变成了无头浏览器
web.get("http://www.baidu.com")
4 进行窗口切换
web.get("xxxxxxxx")
#在selenium中,新窗口默认是不进行切换的
#进行窗口切换
web.switch_to.window(driver.window_handles[-1])
#关闭子窗口
web.close()
#变更selenium的窗口视角,回到原来的窗口中
web.switch_to.window(driver.window_handles[0])
5 iframe中的内容获取
#如果页面中遇到iframe,需要先拿到iframe,然后切换到iframe视角,然后才可以拿数据
iframe = web.get('https://www.91kanju.com/vod-play/541-2-1.html')
web.switch_to.frame(iframe)
#切回原页面
web.switch_to.default_content()
6 程序被识别的解决办法 6.1 chrome的版本号小于88
#使用Chrome的DevTools协议来控制浏览器屏蔽Chrome浏览器的"Chrome正受到自动测试软件控制"提示
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome import options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option('useAutomationExtension', False)

driver = webdriver.Chrome(options=chrome_options)
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
    "source": """
        Object.defineProperty(navigator, 'webdriver', {
            get: () => undefined
        })
    """
})

driver.get(xxxxxx)
html = driver.page_source
6.2 chrome的版本号大于88
option = Options()
# 可写可不写
#option.add_experimental_option('excludeSwitches',['enable-automatioin'])
option.add_argument('--disable-black-features = AutomationControlled')

web = Chrome(option = option)
web.get(xxxxxxx)
关注
打赏
1655040589
查看更多评论
立即登录/注册

微信扫码登录

0.0557s