日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

博客群发(2)--实现登陆

發布時間:2023/12/4 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 博客群发(2)--实现登陆 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

模板方法

python也是一種面向對象的語言,所以在實現群發的時候,會登陸不同的網站,但是登陸的方法什么的不盡相同,所以這里想到的是模板方法。

模板方法模式:

應用特性:重復做相同邏輯的事情,但是具體細節不同的場景

結構特性:相同邏輯抽取至父類,具體細節留置子類。可以說是對邏輯的抽象

看一下代碼:

#!/usr/bin/env python #encoding: utf-8 class template:def __init__(self):passdef logic(self):print 'do something before ....'print self.do_something_now()print 'do something after ....'def do_something_now(self):return None class apply_temp1(template):def __init__(self):passdef do_something_now(self):return 'apply 1' class apply_temp2(template):def __init__(self):passdef do_something_now(self):return 'apply 2' if '__main__' == __name__: obj1 = apply_temp1()obj2 = apply_temp2()obj1.logic()obj2.logic()print obj1.__class__print obj2.__class__

得到結果如下:

然后看一下類圖:

是不是很簡單。

baidu登陸流程

想實現登陸baidu,使用firefox查看,可以看到如下圖:

baidu HI登陸

baidu HI登陸源代碼

# _*_ coding:utf-8 _*_ # name login_baidu.py import urllib,urllib2,httplib,cookielib def auto_login_hi(url,name,pwd):url_hi="http://passport.baidu.com/?login"#設置cookiecookie=cookielib.CookieJar()cj=urllib2.HTTPCookieProcessor(cookie)#設置登錄參數postdata=urllib.urlencode({'username':name,'password':pwd})#生成請求request=urllib2.Request(url_hi,postdata)#登錄百度opener=urllib2.build_opener(cj)f=opener.open(request)if(200==f.getcode()):print "登陸成功!"else:print "登錄失敗!"#print f.getcode()#打開百度HI空間頁面hi_html=opener.open(url)return hi_html if __name__=='__main__':name='用戶名'password='密碼'url='http://hi.baidu.com/ewayfly'h=auto_login_hi(url,name,password)print h.read()

登陸博客園

登錄博客園的代碼: # _*_ coding:utf-8 _*_ import urllib,urllib2,httplib,cookielib def auto_login_cnblogs(url,name,pwd):url_hi="http://passport.cnblogs.com/login.aspx?ReturnUrl=http%3A%2F%2Fwww.cnblogs.com%2F"#設置cookiecookie=cookielib.CookieJar()cj=urllib2.HTTPCookieProcessor(cookie)#設置登錄參數postdata=urllib.urlencode({'username':name,'password':pwd})#生成請求request=urllib2.Request(url_hi,postdata)#登錄百度opener=urllib2.build_opener(cj)f=opener.open(request)if(200==f.getcode()):print "登陸成功!"else:print "登錄失敗!"#print f.getcode()hi_html=opener.open(url)return hi_html if __name__=='__main__':name='用戶名'password='密碼'url='http://www.cnblogs.com/skyme/'h=auto_login_cnblogs(url,name,password)print h.read()

登陸51CTO

登陸51CTO:

#coding:UTF-8 import urllib,urllib2,cookielib,re,random class Login:_login_url = 'http://home.51cto.com/index.php?s=/Index/doLogin'_method = 'post'#email 51cto登錄用戶名或郵箱#passwd 51cto登錄密碼_login_data = {'email':'用戶名',\'passwd':'密碼',\}_headers = [('host','home.51cto.com'),\('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2'),\('Referer','http://home.51cto.com/index.php?s=/Index/index/reback/http%253A%252F%252Fwww.51cto.com%252F/')\]_data = {'cookie_file_path':'./51cto_cookies.dat'}_re = r'src="(.+?)"'_version = '0.1'_connect_info = {}def __init__(self):self._connect_info['cookie'] = cookielib.LWPCookieJar()try:self._connect_info['cookie'].revert(self._data['cookie_file_path'])except Exception,e: print eself._connect_info['cookie_processor'] = urllib2.HTTPCookieProcessor(self._connect_info['cookie'])self._connect_info['post_data'] = urllib.urlencode(self._login_data)def open(self):opener = urllib2.build_opener(self._connect_info['cookie_processor'])opener.addheaders = self._headersurllib2.install_opener(opener)#opener.open(request)request = urllib2.Request(self._login_url,self._connect_info['post_data'])conn = opener.open(request)if(conn.geturl() == self._login_url):self._connect_info['cookie'].save(self._data['cookie_file_path'])else:pass#根據js中的鏈接連接登錄partner = re.compile(self._re)match = partner.findall(conn.read())for item in match:opener.open(item)#登錄成功開始領豆url = 'http://down.51cto.com/download.php'data = {'do':'getfreecredits','t':random.random()}login51cto = opener.open(url, urllib.urlencode(data))print login51cto.getcode()#html = opener.open('http://down.51cto.com/')#領無憂幣url = 'http://home.51cto.com/index.php?s=/Home/toSign'data = {'s':''}loginwuyou = opener.open(url, urllib.urlencode(data))print loginwuyou.getcode() if __name__ == '__main__':login_51cto = Login()login_51cto.open()

總結

以上是生活随笔為你收集整理的博客群发(2)--实现登陆的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。