不知道你們學習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)