python+selenium牛刀小试

前置条件:下载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版本不匹配导致的,如下是版本关系映射表

《python+selenium牛刀小试》 chrome与driver映射表

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

《python+selenium牛刀小试》 以时间戳+关键字命名

点赞