不知道你们学习python的目的有哪些?Web开发 自动化运维 大数据分析 网络爬虫 人工智能 机器学习 ?html
最近对网络爬虫比较感兴趣,为何呢?懒人分不少种.....python
1. 懒惰成性什么都不干的web
2. 趁人不注意就偷懒打盹的chrome
3. 被逼无奈想着投机取巧完成任务的编程
很不幸,学爬虫的初衷确是为了第三种,由于工做上有一些问题须要处理,可是让我一个个的动手完成真的比较无聊,因此想到了爬虫。就如博客园说的,代码改变世界。固然爬虫也分不少类型,我说的主要是经过自动化selenium模拟手动操做,完成重复有重复的工做喽。windows
selenium做为目前市面上比较火的WEBGUI自动化测试。selenium 2针对各个浏览器而开发的,它取代了嵌入到被测Web应用中的 JavaScript。与浏览器的紧密集成,支持建立更高级的测试,避免了JavaScript安全模型的限制。除了来自浏览器厂商的支持,Selenium 2 还利用操做系统级的调用模拟用户输入。WebDriver 支持api
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操做吧:
1 from selenium import webdriver 2 3 firsttest = webdriver.Chrome() # 声明驱动对象 4 5 6 def first_test(url): 7 try: 8 firsttest.get(url) # 发送get请求 9 allurl = firsttest.find_elements_by_tag_name('a') # 找到目标 10 for article in allurl: 11 if article.text == 'Python 修改pip源---windows / Linux': 12 print(article.get_attribute('href')) 13 firsttest.get(article.get_attribute('href')) 14 break 15 except Exception as ErrorInfo: 16 print(ErrorInfo) 17 finally: 18 firsttest.close() # 关闭谷歌浏览器 19 20 21 if __name__ == '__main__': 22 url = 'http://www.cnblogs.com/Dracular/' 23 first_test(url)