python登錄豆瓣并發(fā)帖的方法
更新時間:2015年07月08日 11:39:40 作者:小剛1
這篇文章主要介紹了python登錄豆瓣并發(fā)帖的方法,涉及URL模擬登陸及cookie的相關(guān)使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了python登錄豆瓣并發(fā)帖的方法。分享給大家供大家參考。具體如下:
這里涉及urllib、urllib2及cookielib常用方法的使用
登錄豆瓣,由于有驗證碼,采取的辦法是將驗證碼圖片下載到同目錄下,查看圖片后輸入驗證碼即可登錄、發(fā)帖
帖子內(nèi)容寫死在代碼中了
# -- coding:gbk -- import sys, time, os, re import urllib, urllib2, cookielib loginurl = 'https://www.douban.com/accounts/login' cookie = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) params = { "form_email":"your email", "form_password":"your password", "source":"index_nav" #沒有的話登錄不成功 } #從首頁提交登錄 response=opener.open(loginurl, urllib.urlencode(params)) #驗證成功跳轉(zhuǎn)至登錄頁 if response.geturl() == "https://www.douban.com/accounts/login": html=response.read() #驗證碼圖片地址 imgurl=re.search('<img id="captcha_image" src="(.+?)" alt="captcha" class="captcha_image"/>', html) if imgurl: url=imgurl.group(1) #將圖片保存至同目錄下 res=urllib.urlretrieve(url, 'v.jpg') #獲取captcha-id參數(shù) captcha=re.search('<input type="hidden" name="captcha-id" value="(.+?)"/>' ,html) if captcha: vcode=raw_input('請輸入圖片上的驗證碼:') params["captcha-solution"] = vcode params["captcha-id"] = captcha.group(1) params["user_login"] = "登錄" #提交驗證碼驗證 response=opener.open(loginurl, urllib.urlencode(params)) ''' 登錄成功跳轉(zhuǎn)至首頁 ''' if response.geturl() == "http://www.douban.com/": print 'login success ! ' print '準備進行發(fā)帖' p={"ck":""} c = [c.value for c in list(cookie) if c.name == 'ck'] if len(c) > 0: p["ck"] = c[0].strip('"') addtopicurl="http://www.douban.com/group/python/new_topic" res=opener.open(addtopicurl) html=res.read() m= re.search('<input type="hidden" name="topic_id" value="(.+?)">', html) p["topic_id"] = m.group(1) m= re.search('<input type="hidden" name="topic_id_sig" value="(.+?)">', html) p["topic_id_sig"] = m.group(1) p["rev_title"] = 'title' p["rev_text"] = 'send body' p["rev_submit"] = '好了,發(fā)言' request=urllib2.Request(addtopicurl) request.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11") request.add_header("Accept-Charset", "GBK,utf-8;q=0.7,*;q=0.3") request.add_header("Origin", "http://www.douban.com") request.add_header("Referer", "http://www.douban.com/group/python/new_topic") opener.open(request, urllib.urlencode(p))
希望本文所述對大家的Python程序設(shè)計有所幫助。
您可能感興趣的文章:
相關(guān)文章
Python即時網(wǎng)絡(luò)爬蟲項目啟動說明詳解
這篇文章主要為大家詳細介紹了Python即時網(wǎng)絡(luò)爬蟲項目啟動說明,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-02-02python 發(fā)送郵件的示例代碼(Python2/3都可以直接使用)
這篇文章主要介紹了python 發(fā)送郵件的示例代碼,并且Python2/3都可以直接使用,感興趣的朋友可以參考下2020-12-12Python 實現(xiàn)取矩陣的部分列,保存為一個新的矩陣方法
今天小編就為大家分享一篇Python 實現(xiàn)取矩陣的部分列,保存為一個新的矩陣方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11