美文网首页
Selenium基础入门及实践

Selenium基础入门及实践

作者: 逍遥_yjz | 来源:发表于2021-05-11 21:19 被阅读0次

    1. 环境

    操作系统:Windows10

    Python版本:3.6

    2. 需求分析

    这里就要用到一个爬虫利器Selenium,它是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等等操作,所见即所得。另外对于一些 JavaScript 渲染的页面来说,此种抓取方式非常有效。

    3. Selenium的安装

    Selenium 的安装很简单,可采用如下方式。

    pip install selenium
    

    Selenium安装好之后,并不能直接使用,它需要与浏览器进行对接。这里拿Chrome浏览器为例。若想使用Selenium成功调用Chrome浏览器完成相应的操作,需要通过ChromeDriver来驱动。

    4. ChromeDriver的安装

    这里是ChromeDriver的官方下载地址。

    链接:
    https://chromedriver.storage.googleapis.com/index.html
    我们在下载之前先来确认下我们使用的Chrome浏览器版本。


    通过ChromeDriver的下载链接,找到与之对应的Chrome浏览器版本,根据你电脑系统的平台类型进行下载。


    下载完成之后,解压,将其放置在Python安装路径下Scripts文件夹中即可

    上述操作结束后,我们执行如下命令,测试一下
    from selenium import webdriver
    # 打开Chrome浏览器
    browser = webdriver.Chrome()
    

    代码执行后,若成功打开了浏览器,则证明你的ChromeDriver安装的没问题,可以正常愉快地使用Selenium了。

    接下来,我们先来使用程序来爬取数据
    爬取数据

    from selenium import webdriver, common
    
    
    url = 'https://www.mi.com/index.html'
    # option = webdriver.ChromeOptions()
    #
    # option.add_argument('headless')
    browser = webdriver.Chrome()
    browser.get(url)
    print(browser.page_source)
    

    设置页面加载超时

    设置 browser.get(url) 的超时需要调用 browser.set_page_load_timeout()。例如,下面的示例将打开 google.com 页面的超时设为 3 秒。

    browser.set_page_load_timeout(3)
    

    注意:WebDriver.implicitly_wait() 只能设置查找元素和执行命令的超时,对页面加载操作的超时无效。
    注意:selenium 默认的页面加载超时为 300 秒。selenium 中所有超时方法的参数单位都为秒。内部为将参数乘1000 转成毫秒。
    WebDriver.implicitly_wait() 设置的超时并不适用于用户操作导致的页面重新加载或页面脚本对 DOM 整体结构的改变,遇到这两种情况考虑适用其他等待条件。
    https://zhuanlan.zhihu.com/p/446257218

    参考资料:
    用Python完成毫秒级抢单,助你秒杀淘宝大单
    Python+Selenium基础入门及实践

    相关文章

      网友评论

          本文标题:Selenium基础入门及实践

          本文链接:https://www.haomeiwen.com/subject/htindltx.html