放假回來了,很久沒更新部落格了,以後得常更新,今天給大家分享下python第3方的模組包:mechanize。
mechanize是非常合適的類比瀏覽器的模組,它的特點主要有:
1 http,https協議等。
2 簡單的HTML表單填寫。
3 瀏覽器記錄和重載。
4 Referer的HTTP頭的正確添加(可選)。
5 自動遵守robots.txt的。
6 自動處理HTTP-EQUIV和重新整理。
所以你可以用mechanize來完成一些自動化瀏覽器想要做的事情,比如自動登入表單,自動填寫表單等。
首先你在mechanize download頁面裡面下載並且安裝好
然後可以看下文檔:http://wwwsearch.sourceforge.net/mechanize/
下面是我寫的簡單代碼:
#匯入模組##
import mechanize
import cookielib
from BeautifulSoup import BeautifulSoup
br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)##關聯cookies
###設定一些參數,因為是類比用戶端請求,所以要支援用戶端的一些常用功能,比如gzip,referer等
br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
###這個是degbug##你可以看到他中間的執行過程,對你調試代碼有協助
br.set_debug_http(True)
#br.set_debug_redirects(True)
#br.set_debug_responses(True)
br.addheaders = [('User-agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.11) Gecko/20100701 Firefox/3.5.11')]##類比瀏覽器頭
response = br.open('http://xxx..com/')##自己設定一個url
for f in br.forms():##有的頁面有很多表單,你可以通過來查看
print f
br.select_form(nr=1)##選擇表單1,
br.form['username'] = '使用者賬戶'
br.form['password'] = '密碼'
br.submit()##提交表單
print 'success login'