PYTHON如何控制網頁?

如何通過PYTHON編寫程序來控制網頁,實現自動輸入,自動點擊控制之類的功能,需要學習哪些模塊和知識?求知友指條路子。


上selenium


QtWebkit,PyQt庫,不知道有人用過這個不,自己實現瀏覽器,在載入過程中判斷控制項,可以執行js來操作,在下寫過百度的登錄


webdriver


大部分情況下每次你點擊網頁上的按鈕,實際就是在發送HTTP的GET或POST請求;比如輸入帳號密碼,點擊登錄,實際上就是發送了帶帳號密碼form的POST請求。

所以你最先要學的就是HTTP基礎,主要就是html和javascript的組合是怎麼和後台通信的。

其次就是分析特定網頁是怎麼和後台通信的,就是抓包了。此時你需要Chrome,然後F12進去用開發者工具,然後正常點擊網頁之類的,就能看到具體的GET和POST請求的參數。

用python實際上就是模擬瀏覽器行為,這裡模擬就是用python實現GET和POST請求。對於python3,學基礎的話就是urllib庫,用於請求的就是urllib.request,其中主要是urllib.request.urlopen()和urllib.request.Request();對於帶數據的GET和POST請求需要用到urllib.parse來格式化,主要是urllib.parse.urlencode()。

對於數據的處理,可以用正則表達式,就是re庫;現在很多POST請求返回的都是json格式數據,就可以直接用json庫了,主要就是json.loads()。

上面大概就是最基礎的了,難度最大的地方就是模擬的http請求了,有時候需要到html或者javascript中找到需要的參數,有時候還要修改請求的headers。

如果你不想這麼折騰的話可以用requests,beautiful soup之類的第三方庫,會容易很多。


selenium+1

Selenium自動化工具


selenium自動化測試

貌似題主改題目了...


快速上手關鍵字:Python爬蟲

其實你要解決的不是怎麼用Python去控制頁面的元素。而是點擊這些按鈕時,你的瀏覽器做了什麼。

以點擊〈登錄〉按鈕為例,大致的流程就是:

瀏覽器將表單數據編碼發出(post)--&>網站伺服器接收後驗證並返回登錄成功頁面--&>瀏覽器接收並解碼(get)

如果你不懂http的相關流程,建議去學習一下。

然後,百度Python爬蟲,教程一堆堆

的。不出意外的話,3天不到你就能實現你想要的功能。

要注意的是,網上的教程大多是for Python2.X。所以,如果你不清楚和Python3.X的區別的話,建議從py2入門爬蟲。


推薦閱讀:

天天演算法 | Medium | 5. 3Sum : 找出所有和為零的三元組(不重複)
Atom 編輯器怎麼快速移除空白行?
「Luy」CSS盒子模式還是很重要的
CSS Modules入門Ⅱ:快速上手

TAG:前端開發 | Python | 編程 | Python庫 |