不知道大家学习python的目的有哪些?Web开发 自动化运维 大数据分析 网络爬虫 人工智能 机器学习 ?
最近对网络爬虫比较感兴趣,为什么呢?懒人分很多种.....
1. 懒惰成性什么都不干的
2. 趁人不注意就偷懒打盹的
3. 被逼无奈想着投机取巧完成任务的
很不幸,学爬虫的初衷确是为了第三种,因为工作上有一些问题需要处理,但是让我一个个的动手完成真的比较无聊,所以想到了爬虫。当然爬虫也分很多类型,我说的主要是通过自动化selenium模拟手动操作,完成重复有重复的工作喽。
selenium作为目前市面上比较火的WEBGUI自动化测试。selenium 2针对各个浏览器而开发的,它取代了嵌入到被测Web应用中的 JavaScript。与浏览器的紧密集成,支持创建更高级的测试,避免了JavaScript安全模型的限制。除了来自浏览器厂商的支持,Selenium 2 还利用操作系统级的调用模拟用户输入。WebDriver 支持
-
Firefox (FirefoxDriver)
-
IE(InternetExplorerDriver)
-
Opera(OperaDriver)
-
Chrome (ChromeDriver)
-
以及safari(SafariDriver)
它还支持Android(Selendroid)和iPhone(Appium)的移动应用测试。此外,Selenium 2还包括基于HtmlUnit的无界面实现,称为HtmlUnitDriver,和基于webkit的无界面浏览器phantomjs。Selenium 2 API可以通过
-
Java
-
C#
-
PHP
-
Python
-
Perl
-
Ruby
等编程语言访问,支持开发人员使用他们常用的编程语言来创建测试。好了,既然python涵盖在其中,那就简单看看吧,艺多不压身啊。。。。
谈及selenium就要推荐两个网站了,因为selenium在使用的时候需要下载浏览器对应的webdriver才行。我个人比较喜欢谷歌浏览器,所以第一个网站就是chromedriver插件的下载网址了。
1. 谷歌浏览器启动下载地址: http://chromedriver.storage.googleapis.com/index.html
需要注意的地方,你的浏览器需要和对应版本的chromedriver配合,才能使用哦。
附chromedriver与chrome的对应关系表:
chromedriver版本 | 支持的Chrome版本 |
---|---|
v2.35 | v62-64 |
v2.34 | v61-63 |
v2.33 | v60-62 |
v2.32 | v59-61 |
v2.31 | v58-60 |
v2.30 | v58-60 |
v2.29 | v56-58 |
v2.28 | v55-57 |
v2.27 | v54-56 |
v2.26 | v53-55 |
v2.25 | v53-55 |
v2.24 | v52-54 |
v2.23 | v51-53 |
v2.22 | v49-52 |
v2.21 | v46-50 |
v2.20 | v43-48 |
v2.19 | v43-47 |
v2.18 | v43-46 |
v2.17 | v42-43 |
v2.13 | v42-45 |
v2.15 | v40-43 |
v2.14 | v39-42 |
v2.13 | v38-41 |
v2.12 | v36-40 |
v2.11 | v36-40 |
v2.10 | v33-36 |
v2.9 | v31-34 |
v2.8 | v30-33 |
v2.7 | v30-33 |
v2.6 | v29-32 |
v2.5 | v29-32 |
v2.4 | v29-32 |
我的chrome版本是63的所以直接下载2.3.5就OK。下载好你们的chromedriver.exe 放在指定目录下 如: pythonpath/scripts 如果电脑环境变量中的path不包含你放置的目录,记得要添加进去哦。
2. webdriver中文社区 : http://www.webdriver.org/nav1/ 上面有很多selenium的相关知识,棒棒哒......
来一段简单的selenium操作吧:
from selenium import webdriver
firsttest = webdriver.Chrome() # 声明驱动对象
def first_test(url):
try:
firsttest.get(url) # 发送get请求
allurl = firsttest.find_elements_by_tag_name('a') # 找到目标
for article in allurl:
if article.text == 'Python 修改pip源---windows / Linux':
print(article.get_attribute('href'))
firsttest.get(article.get_attribute('href'))
break
except Exception as ErrorInfo:
print(ErrorInfo)
finally:
firsttest.close() # 关闭谷歌浏览器
if __name__ == '__main__':
url = 'http://www.cnblogs.com/Dracular/'
first_test(url)
©本文由简书作者:[清风Python](https://www.jianshu.com/u/d23fd5012bed) 原创 如需转载请注明