一,安装文件和插件 文件的学习参考该文章:https://www.jianshu.com/p/6c82c965c014 常用代码: 发起请求 get(url) 标签定位 find系列 往框里输入内容 send_keys() 执行js程序 execute_script(“cscode”) 前进,后退 forward(),back() 关闭浏览器 quit(),close()
#先安装selenium pip install selenium #导入模块 from selenium import webdriver # IPython2 测试代码 # 导入 webdriver # 要想调用键盘按键操作需要引入keys包 from selenium.webdriver.common.keys import Keys # 调用环境变量指定的PhantomJS浏览器创建浏览器对象 driver = webdriver.PhantomJS() # 如果没有在环境变量指定PhantomJS位置 # driver = webdriver.PhantomJS(executable_path="./phantomjs")) # get方法会一直等到页面被完全加载,然后才会继续程序,通常测试会在这里选择 time.sleep(2) driver.get("http://www.baidu.com/") # 获取页面名为 wrapper的id标签的文本内容 data = driver.find_element_by_id("wrapper").text # 打印数据内容 print data # 打印页面标题 "百度一下,你就知道" print driver.title # 生成当前页面快照并保存 driver.save_screenshot("baidu.png") # id="kw"是百度搜索输入框,输入字符串"长城" driver.find_element_by_id("kw").send_keys(u"马云") # id="su"是百度搜索按钮,click() 是模拟点击 driver.find_element_by_id("su").click() # 获取新的页面快照 driver.save_screenshot("马云.png") # 打印网页渲染后的源代码 print driver.page_source # 获取当前页面Cookie print driver.get_cookies() # ctrl+a 全选输入框内容 driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a') # ctrl+x 剪切输入框内容 driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x') # 输入框重新输入内容 driver.find_element_by_id("kw").send_keys(u"王健林") # 模拟Enter回车键 driver.find_element_by_id("su").send_keys(Keys.RETURN) # 清除输入框内容 driver.find_element_by_id("kw").clear() # 生成新的页面快照 driver.save_screenshot("王健林.png") # 获取当前url print driver.current_url # 关闭当前页面,如果只有一个页面,会关闭浏览器 # driver.close() # 关闭浏览器 driver.quit()##其他的一些关与滑动的操作##
#滑动到页面最底部 driver.execute_script("window.scrollTo(window.pageXOffset, document.body.scrollHeight)") #滑动到最顶部 driver.execute_script("window.scrollTo(window.pageXOffset, 0)") #用按键来进行滑动,我们先点击页面中某个元素,然后用 action sendKey 左键和右键来实现左右滑动。其实这种写法对于上下滑动也是可以的。 Action action = new Action(driver) driver.findElement(by).click() for (int i = 0; i < 10; i++) { action.sendKeys(Keys.RIGHT).perform() #滑动到最右边 driver.execute_script("window.scrollTo(document.body.scrollWidth, window.pageYOffset)") #滑动到最左边 driver.execute_script("0, window.pageYOffset)")使用无头浏览器+防检测
#实现无可视化界面 from selenium.webdriver.chrome.options import Option #实现防检测,防止识别出来是爬虫 from selenium.webdrive import ChromeOptions #实现无可视化界面的操作 chrome_options = Options() chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu') #实现规避检测 option = ChromeOptions() option.add_experimental_option(chrome_options=chrome_options,options=option) #安装PIL出错,原因是因为Python3版本已经把PIL换成pillow 导入的时候输入 from PIL import Image