第一步:安装与配置

1.电脑上需要有火狐浏览器(默认安装在C:\Program Files (x86)\Mozilla Firefox目录下)。

2.使用pip install selenium安装好之后。

3.在这里https://github.com/mozilla/geckodriver/releases下载一个driver包,根据自己的系统决定下哪个,我下的是geckodriver-v0.11.1-win64.zip

4.把刚下好的包里面的exe文件拷贝到火狐浏览器目录下,然后把火狐浏览器的目录加入系统的环境变量里的PATH。

第二步:启动python,测试selenium

Example 0:

open a new Firefox browser
load the page at the given URL
from selenium import webdriver browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')
Example 1: open a new Firefox browser
load the Yahoo homepage
search for “seleniumhq”
close the browser
from selenium import webdriver
from selenium.webdriver.common.keys import Keys browser = webdriver.Firefox() browser.get('http://www.yahoo.com')
assert 'Yahoo' in browser.title elem = browser.find_element_by_name('p') # Find the search box
elem.send_keys('seleniumhq' + Keys.RETURN) browser.quit()

更多例子,看官网:https://pypi.python.org/pypi/selenium/2.45.0

PS:最好用的一点是,可以通过browser.page_source来获得网页源码,传进BeautifulSoup里就可以啦~~~~~

PPS:当然,如果想操作chrome同样也是可以的,这时候需要一个chromedriver.exe,这个文件我是从这里下的:http://chromedriver.storage.googleapis.com/index.html?path=2.25/我下的是chromedriver_win32.zip。然后把里面的exe文件放进chrome的安装目录下,然后再把这个目录加入PATH就可以使用了。我的chrome安装目录是C:\Program Files (x86)\Google\Chrome\Application。

测试代码:

from selenium import webdriver

driver =  webdriver.Chrome()

driver.get("http://www.baidu.com")

driver.quit()

PPPS:然后,在使用的时候发现有时候会有页面加载很慢的情况,因为selenium是在页面完全加载完毕才会停止,然而这个在很多时候是没有必要的,这个时候可以自己手动设置超时时间。方法如下:(参考https://my.oschina.net/u/2344787/blog/400507?p={{page}})


from selenium import webdriver
from selenium.common.exceptions import TimeoutException

driver = webdriver.Firefox()
# 设定页面加载限制时间
driver.set_page_load_timeout(5)
driver.maximize_window() try:
driver.get('http://www.icourse163.org/')
except TimeoutException:
driver.execute_script('window.stop()') #当页面加载时间超过设定时间,通过执行Javascript来stop加载,即可执行后续动作

一个例子:抓取中国裁判文书网

from selenium import webdriver
from bs4 import BeautifulSoup
import time d = webdriver.Chrome()
d.get("http://wenshu.court.gov.cn/list/list/?sorttype=1&conditions=searchWord+QWJS+++全文检索:抢劫")
time.sleep(5) # 根据网络情况调整sleep时间
d.execute_script("""
var span = document.createElement(\"span\");
span.id = \"myspanspan\";
span.innerHTML = document.getElementById(\"resultList\").innerHTML;
var ele = document.body;
ele.appendChild(span);
""")
soup = BeautifulSoup(d.page_source,'html.parser',from_encoding='gb18030')
x = soup.find('span',{'id':'myspanspan'})
print(str(x))
d.close()

python3初识selenium的更多相关文章

  1. ubuntu16.04 python3 安装selenium及环境配置

    环境 ubuntu16.04 python3 安装selenium sudo pip3 install seleium 默认安装完是支持firefox,但是更新得太慢对于较新的firefox已经不支持 ...

  2. 5月25号开学! 第13期《python3自动化测试selenium+接口》课程,python零基础也能学

    2019年 第13期<python3自动化测试selenium+接口>课程,5月25号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学 本期上课时间:5月25号-7月28号,每周 ...

  3. Python3 使用selenium库登陆知乎并保存cookie为本地文件

    Python3 使用selenium库登陆知乎并保存cookie为本地文件 学习使用selenium库模拟登陆知乎,并将cookie保存为本地文件,然后供以后(requests模块)使用,用selen ...

  4. 初识selenium

    今天尝试了一些selenium,感觉并没有想象中那么难.整理一篇笔记出来. 笔者使用的是Python+selenium.以下内容均是基于Windows系统和Python3.5.2. 首先是下载sele ...

  5. Mac python3.5 + Selenium 开发环境配置

    一. python 3.5 1. 下载 2. Mac默认为2.7,所以这里主要介绍如何将系统Python默认修改为3.5. 原理: 1)Mac自带的python环境在: python2.7: /Sys ...

  6. Python3 Scrapy + Selenium + 阿布云爬取拉钩网学习笔记

    1 需求分析 想要一个能爬取拉钩网职位详情页的爬虫,来获取详情页内的公司名称.职位名称.薪资待遇.学历要求.岗位需求等信息.该爬虫能够通过配置搜索职位关键字和搜索城市来爬取不同城市的不同职位详情信息, ...

  7. 在Centos7下docker配置自动化环境镜像(python3.7+selenium 3.11+firefox 62+geckodriver 0.21)

    最近在学习Docker,准备做自动化测试代码集成的功能.如下文章的前提是已经安装好linux系统,且成功安装好Docker. 接下来我会按步骤一步一步的对自动化需要的一些环境进行安装,如果没有特别说明 ...

  8. Python3.5+selenium操作Chrome浏览器

    1.安装selenium 命令提示符下输入: pip install selenium 2.下载chromedriver 点击下载 3.将解压后的chromedriver.exe放到chrome浏览器 ...

  9. python3.x + selenium 3.x 遇到的问题:Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x0045E450>>

    我解决了!!!from selenium import webdriverimport timedr = webdriver.Firefox(executable_path = '/Users/jin ...

随机推荐

  1. n点游戏

    n点游戏 24点游戏是非常经典而简单的小游戏,从一堆扑克牌中抽取4张,向其中添加运算符号并使其运行结果恰等于24,这叫作24点游戏. 现在我们不再是组合24,而是组合出给定的数字n,但要求只可以利用任 ...

  2. Codeforces Round #500 (Div. 2) BC

    CodeForces 1013B And CodeForces 1013C  Photo of The Sky B 可以发现只有一次与操作是有意义的,所以答案只有-1,0,1,2四种情况 #inclu ...

  3. DAG上dp思想

    DAG上DP的思想 在下最近刷了几道DAG图上dp的题目.要提到的第一道是NOIP原题<最优贸易>.这是一个缩点后带点权的DAG上dp,它同时规定了起点和终点.第二道是洛谷上的NOI导刊题 ...

  4. Git使用之二:下载远程代码到本地指定文件夹

    一.前期工作: 1.准备好本地的文件夹 2.如果后期需要继续以该文件夹进行同步的,则需要配置该文件夹,方法请参考之前的  Git使用之一:创建仓储和提交文件 二.用clone(克隆方式下载) 在本地下 ...

  5. ubuntu设置ssh登陆

    转: 默认请况下,ubuntu是不允许远程登陆的.(因为服务没有开,可以这么理解.) 想要用ssh登陆的话,要在需要登陆的系统上启动服务.即,安装ssh的服务器端 $ sudo apt-get ins ...

  6. "Cannot open source file "Wire.h" " in Arduino Development

    0. Environment Windows 8 x64 Arduino 1.0.5 Visual studio 2012 Visual micro Arduino 1. Steps Add &quo ...

  7. redis学习资料汇总

    redis学习资料汇总 2017年01月07日 22:10:37 阅读数:281 转载:http://blog.csdn.net/wtyvhreal/article/details/50427627 ...

  8. ADB常用指令

    adb 命令是adb程序自带的一些命令:adb shell则是调用Android系统的命令,Android系统特有的命令都放在Android设备的/system/bin目录中 MonkeyRunner ...

  9. Assetbundle1

    AssetBundle运行时加载:来自文件就用CreateFromFile(注意这种方法只能用于standalone程序)这是最快的加载方法也可以来自Memory,用CreateFromMemory( ...

  10. webpack使用时可能出现的问题

    1.在配置完webpack.config.js准备进行热加载开发时,修改React内容浏览器不会自动局部刷新,而且会console出一些提示: The following modules couldn ...