安裝windows版的python到我的VirtualBox上WIN7,到 https://www.python.org/ 下載
Download excutable Installer版本,要32/64bit就看你的作業系統了!
試了很久才發現pip雖然3.4就預載但不能直接用,原來還要Bootstrapping pip 參考下面網址 https://docs.python.org/3/library/ensurepip.html
執行python -m ensurepip
執行Python的Module Docs可以查看目前的 Modules
再來下載Beautiful Soup到PC上並解壓縮 網址:https://www.crummy.com/software/BeautifulSoup/#Download
在解壓縮的目錄找到setup.py並執行(python 的路徑要加到PATH裡)
python setup.py build
python setup.py install
再執行Python的Module Docs可以查看目前的 package已有bs4
WxWidgets應該算是近幾年了比較流行的GUI跨平台開發技術了。 wxWidgets有不同的版本應用,有c++的,也有basic的,現在在python上面也有較好的移植。wxpython的功能上面要強於 tkinter,她提供了超過200個類,面向對象的編程風格,設計的框架類似於MFC。對於大型GUI應用上面,wxPython還是具有很強的優勢 的。boa constructor可以幫助我們快速可視地構建wxwidgets界面。 安裝wxPython
Selenium 是為瀏覽器自動化(Browser Automation)需求所設計的一套工具集合,讓程式可以直接驅動瀏覽器進行各種網站操作。 使用webdriver.Firefox()即可但有error ,需要Geckodriver Webdriver 才可以正常啟動,因此到這裡下載最新的 Geckodriver 版本 https://github.com/mozilla/geckodriver/releases
如果你是使用Chrome 把Code改成driver=webdriver.Chrome() 並到這裡下載最新的chromedriver.exe https://sites.google.com/a/chromium.org/chromedriver/downloads
下載完geckodriver.exe後放到python.exe的目錄就好了.再執行webdriver.Firefox()就沒有error
使用urllib+BeautifulSoup來做auto login
url='http://192.168.2.1'
headers = {};
headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; rv:54.0) Gecko/20100101 Firefox/54.0';
headers['Accept'] ='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
headers['Accept-Language'] ='zh-TW,zh;q=0.8,en-US;q=0.5,en;q=0.3'
headers['Accept-Encoding'] ='Accept-Encoding: gzip, deflate'
req = urllib.request.Request(url, headers=headers);
HtmlResponse = urllib.request.urlopen(req)
HtmlPureContent= HtmlResponse.read()
sp = BeautifulSoup(HtmlPureContent,"html.parser")
sp已可以讀出html裡tag的資料,例如sp.form, sp.find('form'), sp.form.findAll('input'),分析需要填入哪些資料,下面是已經分析完,已準備好要填入的資料
HTTP Referer是header的一部分,當瀏覽器向web伺服器發送請求的時候,一般會帶上Referer,告訴伺服器我是從哪個頁面連結過來的,伺服器借此可以獲得一些資訊用於處理。
headers2 = {};
headers2['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; rv:54.0) Gecko/20100101 Firefox/54.0';
headers2['Accept'] ='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
headers2['Accept-Language'] ='zh-TW,zh;q=0.8,en-US;q=0.5,en;q=0.3'
headers2['Accept-Encoding'] ='Accept-Encoding: gzip, deflate'
headers2['Referer'] ='http://192.168.2.1/'
values = {'Username' : 'admin',
'Password' : 'admin',
'oth' : '1'}
postdata = urllib.parse.urlencode(values).encode("utf-8")
req = urllib.request.Request(sSumbitFormURL, data=postdata,headers=headers2);
HtmlSumbit = urllib.request.urlopen(req)
成功的話在下面的code會讀回login後的頁面的index
SubmitPureContent= HtmlSumbit.read()
sp_pass = BeautifulSoup(SubmitPureContent,"html.parser")
meta_tag=sp_pass.find('meta')
print(meta_tag)
sStr1=meta_tag['content']
print(sStr1)
sStr1List=sStr1.split()
for testStr in sStr1List:
if 'url' in testStr:
sURLStr1List=sStr1.split('=')
sPassNewURL=url+sURLStr1List[1]
print(sPassNewURL)
留言列表