美文网首页我爱编程
python+selenium牛刀小试

python+selenium牛刀小试

作者: 寻叶亭 | 来源:发表于2017-06-17 21:17 被阅读403次

    前置条件:下载python,安装selenium、chrome、chromedriver(要放在/python/scripts目录下)
    用python实现自动读取txt文件里面的行,当作关键字打开浏览器百度搜索,将搜索结果截图保存在本地,脚本如下:

    #/usr/bin/env/python
    #-*-coding=utf-8-*-
    from selenium import webdriver #引入webdriver模块
    import time #引入time模块
    timeStamp = time.strftime("%Y%m%d%H%M%S", time.localtime(time.time()))#获取本地时间定义时间戳
    driver = webdriver.Chrome()#使用chrome浏览器
    file = open("E:\Python27\pic.txt")#打开pic.txt
    line = file.readline()#定义line为读取file中的一行
    while line:#当line不为空
        driver.get("https://www.baidu.com/s?wd="+line.strip('\n'))#getURL为用百度搜line变量的值
        driver.save_screenshot(timeStamp+line.strip('\n')+".png")#截图以时间戳+搜索值命名保存在本地
        time.sleep(3)#停顿3s以便看图
        line = file.readline()#读取下一行
    driver.quit()#退出浏览器
    file.close()#关闭pic.txt文件
    

    Tips:strip() 是去除掉首尾的 “\r\n\t”,rstrip()去除右侧的字符, lstrip()去除左侧的字符

    期间遇到一个错:

    ConnectionResetError: [WinError 10054]
    

    远程主机强迫关闭了一个现有的连接
    将代码做如下调整:

    option= webdriver.ChromeOptions()option.add_argument('--user-data-dir=C:\Program Files\Google\Chrome\Application\\User Data')
      #设置成用户自己的数据目录driver = webdriver.Chrome(chrome_options=option)
    

    又报如下错误:

      selenium.common.exceptions.WebDriverException: Message: unknown error: Runtime.executionContextCreated has invalid 'context': 
      {"auxData":{"frameId":"4692.1","isDefault":true},"id":1,"name":"","origin":"://"}(Session info: chrome=56.0.2924.87)
      (Driver info: chromedriver=2.9.248315,platform=Windows NT 6.1 SP1 x86)
    

    这个错是因为chrome和chromedriver版本不匹配导致的,如下是版本关系映射表

    chrome与driver映射表

    我用的chrome是v56,所以要对应下载v2.28版本的chromedriver,全版本下载地址:npm.taobao.org/mirrors/chromedriver
    最终问题解决,图片保存成功:

    以时间戳+关键字命名

    相关文章

      网友评论

        本文标题:python+selenium牛刀小试

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