使用Python中的cookielib模擬登錄網(wǎng)站
前面簡單提到了 Python 模擬登錄的程序,但是沒寫清楚,這里再補(bǔ)上一個(gè)帶注釋的 Python 模擬登錄的示例程序。簡單說一下流程:先用cookielib獲取cookie,再用獲取到的cookie,進(jìn)入需要登錄的網(wǎng)站。
# -*- coding: utf-8 -*- # !/usr/bin/python import urllib2 import urllib import cookielib import re auth_url = 'http://www.nowamagic.net/' home_url = 'http://www.nowamagic.net/'; # 登陸用戶名和密碼 data={ "username":"nowamagic", "password":"pass" } # urllib進(jìn)行編碼 post_data=urllib.urlencode(data) # 發(fā)送頭信息 headers ={ "Host":"www.nowamagic.net", "Referer": "http://www.nowamagic.net" } # 初始化一個(gè)CookieJar來處理Cookie cookieJar=cookielib.CookieJar() # 實(shí)例化一個(gè)全局opener opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar)) # 獲取cookie req=urllib2.Request(auth_url,post_data,headers) result = opener.open(req) # 訪問主頁 自動(dòng)帶著cookie信息 result = opener.open(home_url) # 顯示結(jié)果 print result.read()
再附帶幾個(gè)示例程序:
1. 使用已有的cookie訪問網(wǎng)站
import cookielib, urllib2 ckjar = cookielib.MozillaCookieJar(os.path.join('C:\Documents and Settings\tom\Application Data\Mozilla\Firefox\Profiles\h5m61j1i.default', 'cookies.txt')) req = urllib2.Request(url, postdata, header) req.add_header('User-Agent', \ 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)') opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(ckjar) ) f = opener.open(req) htm = f.read() f.close()
2. 訪問網(wǎng)站獲得cookie,并把獲得的cookie保存在cookie文件中
import cookielib, urllib2 req = urllib2.Request(url, postdata, header) req.add_header('User-Agent', \ 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)') ckjar = cookielib.MozillaCookieJar(filename) ckproc = urllib2.HTTPCookieProcessor(ckjar) opener = urllib2.build_opener(ckproc) f = opener.open(req) htm = f.read() f.close() ckjar.save(ignore_discard=True, ignore_expires=True)
3. 使用指定的參數(shù)生成cookie,并用這個(gè)cookie訪問網(wǎng)站
import cookielib, urllib2 cookiejar = cookielib.CookieJar() urlOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar)) values = {'redirect':", 'email':'abc@abc.com', 'password':'password', 'rememberme':", 'submit':'OK, Let Me In!'} data = urllib.urlencode(values) request = urllib2.Request(url, data) url = urlOpener.open(request) print url.info() page = url.read() request = urllib2.Request(url) url = urlOpener.open(request) page = url.read() print page
- 用python登錄帶弱圖片驗(yàn)證碼的網(wǎng)站
- python中requests模擬登錄的三種方式(攜帶cookie/session進(jìn)行請(qǐng)求網(wǎng)站)
- python實(shí)現(xiàn)網(wǎng)站微信登錄的示例代碼
- python實(shí)現(xiàn)網(wǎng)站用戶名密碼自動(dòng)登錄功能
- 對(duì)python抓取需要登錄網(wǎng)站數(shù)據(jù)的方法詳解
- Python實(shí)現(xiàn)爬取需要登錄的網(wǎng)站完整示例
- Python 登錄網(wǎng)站詳解及實(shí)例
- Python3使用requests登錄人人影視網(wǎng)站的方法
- Python爬蟲模擬登錄帶驗(yàn)證碼網(wǎng)站
- python實(shí)現(xiàn)網(wǎng)站的模擬登錄
- python 模擬網(wǎng)站登錄——滑塊驗(yàn)證碼的識(shí)別
相關(guān)文章
pyecharts X軸標(biāo)簽太長被截?cái)嗟膯栴}及解決
這篇文章主要介紹了pyecharts X軸標(biāo)簽太長被截?cái)嗟膯栴}及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11selenium+python實(shí)現(xiàn)自動(dòng)化登錄的方法
這篇文章主要介紹了selenium+python實(shí)現(xiàn)自動(dòng)化登錄的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09Pycharm虛擬環(huán)境pip時(shí)報(bào)錯(cuò):no?suchoption:--bulid-dir的解決辦法
最近在工作中遇到了些問題,想著大家應(yīng)該也會(huì)遇到過,所以給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于Pycharm虛擬環(huán)境pip時(shí)報(bào)錯(cuò):no?suchoption:?--bulid-dir的解決辦法,需要的朋友可以參考下2022-07-07python使用xmlrpclib模塊實(shí)現(xiàn)對(duì)百度google的ping功能
這篇文章主要介紹了python使用xmlrpclib模塊實(shí)現(xiàn)對(duì)百度google的ping功能,實(shí)例分析了xmlrpclib模塊的相關(guān)技巧,需要的朋友可以參考下2015-06-06簡單掌握Python中g(shù)lob模塊查找文件路徑的用法
glob模塊遵循Unix的shell規(guī)則來匹配文件名進(jìn)行文件查找,下面我們結(jié)合匹配相關(guān)的字符區(qū)間與通配符知識(shí),來簡單掌握Python中g(shù)lob模塊查找文件路徑的用法2016-07-07如何將一個(gè)CSV格式的文件分割成兩個(gè)CSV文件
這篇文章主要介紹了如何將一個(gè)CSV格式的文件分割成兩個(gè)CSV文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07