孤荷凌寒自學python第八十五天配置selenium並進行模擬瀏覽器操做1css
(完整學習過程屏幕記錄視頻地址在文末)html
要模擬進行瀏覽器操做,只用requests是不行的,所以今天瞭解到有專門的解決方案:selenium模塊及與火狐瀏覽器的配合使用。html5
1、環境配置python
(一)、安裝selenium模塊git
pip install seleniumgithub
C:\WINDOWS\system32>pip install seleniumweb
Collecting selenium編程
Downloading https://files.pythonhosted.org/packages/80/d6/4294f0b4bce4de0abf13e17190289f9d0613b0a44e5dd6a7f5ca98459853/selenium-3.141.0-py2.py3-none-any.whl (904kB)json
100% |████████████████████████████████| 911kB 637kB/s瀏覽器
Requirement already satisfied: urllib3 in g:\w10_1\python\python365\lib\site-packages (from selenium) (1.23)
Installing collected packages: selenium
Successfully installed selenium-3.141.0
(二)、安裝火狐瀏覽器
默認安裝路徑便可。
(三)、配置火狐瀏覽器中的第三方工具
打開附件組件,選擇「獲取附件組件」,在搜索框中搜索selenium IDE,並添加到瀏覽器中。
(四)、下載geckodriver程序
geckodriver的下載連接:https://github.com/mozilla/geckodriver/releases
下載到本地後是一個zip文件,解壓後只獲得一個文件:
geckodriver.exe
將這個文件複製到火狐瀏覽器的安裝路徑中。
(五)、下載另外一個解析器html5lib
pip install html5lib
C:\WINDOWS\system32>pip install html5lib
Collecting html5lib
Downloading https://files.pythonhosted.org/packages/a5/62/bbd2be0e7943ec8504b517e62bab011b4946e1258842bc159e5dfde15b96/html5lib-1.0.1-py2.py3-none-any.whl (117kB)
100% |████████████████████████████████| 122kB 261kB/s
Collecting webencodings (from html5lib)
Downloading https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl
Requirement already satisfied: six>=1.9 in g:\w10_1\python\python365\lib\site-packages\six-1.11.0-py3.6.egg (from html5lib) (1.11.0)
Installing collected packages: webencodings, html5lib
Successfully installed html5lib-1.0.1 webencodings-0.5.1
2、而後進行測試,自動操做瀏覽器進入百度搜索
代碼是從網上獲取 的,來源已無從考證。
import json
import re
import time
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
import _mty
import _mf
brower = webdriver.Firefox(executable_path=r'C:\Program Files\Mozilla Firefox\geckodriver.exe')
#打開百度搜索
brower.get("http://www.baidu.com")
#將查詢條件賦值給查詢文本框
brower.find_element_by_id('kw').send_keys('selenium')
#點擊查詢操做
brower.find_element_by_id('su').click()
#等待3秒,頁面內容太多,有時加載比較慢
time.sleep(3)
#獲取當前查詢頁面全部數據
html=brower.page_source
content=BeautifulSoup(html,'html5lib')
#row4=content.select("#4")[0] #這兒就報錯了,找不到這個css標籤
#打印第4條查詢結果
#print(row4)
#print(content)
_mf.writeAllTextToTxtFileGhlh('1.txt',str(content))
#pattern = re.compile(" class=\"c-abstract\">(.+?)<em>", re.S)
#ressource = re.findall(pattern, str(row4))[0]
#打印第4條查詢結果的內容
#print(ressource)
brower.close()
執行時出現了錯誤(被我註釋掉的那些行代碼)
我分析的緣由是,頁面沒有加載出搜索後的內容,而後就開始去select操做尋找指定的標籤對象,因此不會有結果,然而這種問題,目前我又無法解決,在此懇請高手指點,萬分感激!!
——————————
今天整理的學習筆記完成,最後例行說明下個人自學思路:
根據過去多年我自學各類編程語言的經歷,認爲只有真正體驗式,解決實際問題式的學習纔會有真正的效果,即讓學習實際發生。在2004年的時候我開始在一個鄉村小學自學電腦 並學習vb6編程語言,沒有學習同伴,也沒有高師在上,甚至電腦都是孤島(鄉村那時尚未網絡),有的只是一本舊書,在痛苦的自學摸索中,我找到適應本身零基礎的學習方法:首先是每讀書的一小節就做相應的手寫筆記,第二步就是上機測試每個筆記內容是否實現,其中會發現書中講的其實有出入或錯誤,第三步就是在上機測試以後,將筆記改成電子版,造成最終的修訂好的正確無誤的學習筆記 。
經過反覆嘗試錯誤,在那個沒有分享與交流的黑暗時期我摸黑學會了VB6,爾後接觸了其它語言,也曾聽過付費視頻課程,結果發現也許本身學歷果真過低,就算是零基礎的入門課程,其實也難以跟上進度,講師的教學多數出現對初學者的實際狀況並不瞭解的狀況,何況學習者的個體也存在差別呢?固然更可怕的是收費課程的價格每每是本身難以承受的。
因而個人全部編程學習都改成了自學,繼續本身的三步學習筆記法的學習之路。
固然自學的最大問題是會走那麼多的彎路,沒有導師直接輸入式的教學來得直接,好在網絡給咱們帶來無限搜索的機會,你們在網絡上的學習日誌帶給咱們共享交流的機會,而QQ羣等交流平臺、網絡社區的成立,咱們能夠一塊兒自學,互相批評交流,也能夠得到更有效,更自主的自學成果。
因而我以人生已過半的年齡,決定繼續個人編程自學之路,開始學習python,只但願與你們共同交流,一我的的獨行是可怕的,只有一羣人的共同前進纔是有但願的。
誠摯期待您的交流分享批評指點!歡迎聯繫我加入從零開始的自學聯盟。
這個時代互聯網成爲了一種基礎設施的存在,因而原本在孤獨學習之路上的咱們變得再也不孤獨,由於網絡就是一個新的客廳,咱們時刻均可以進行沙龍活動。
很是樂意能與你們一塊兒交流本身自學心得和發現,更但願你們可以對我學習過程當中的錯誤給予指點——是的,這樣我就能有許多免費的高師了——這也是分享時代,社區時代帶來的好福利,我相信你們會的,是吧!
根據徹底共享的精神,開源互助的理念,個人我的自學錄製過程是所有按4K高清視頻錄製的,從手寫筆記到驗證手寫筆記的上機操做過程全程錄製,但由於4K高清文件太大均超過5G以上,因此沒法上傳至網絡,若有須要可聯繫我QQ578652607對傳,樂意分享。上傳分享到百度網盤的只是壓縮後的720P的視頻。
個人學習過程錄像百度盤地址分享以下:(清晰度:1280x720)
連接:https://pan.baidu.com/s/1Bpc13UlP4gysP1x6tzps9g
提取碼:7zun
Bilibili:
https://www.bilibili.com/video/av42215230/
喜馬拉雅語音筆記: