python登录豆瓣并发帖的方法
作者:小刚1 时间:2021-03-06 14:48:35
本文实例讲述了python登录豆瓣并发帖的方法。分享给大家供大家参考。具体如下:
这里涉及urllib、urllib2及cookielib常用方法的使用
登录豆瓣,由于有验证码,采取的办法是将验证码图片下载到同目录下,查看图片后输入验证码即可登录、发帖
帖子内容写死在代码中了
# -- 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))
#验证成功跳转至登录页
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参数
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))
''' 登录成功跳转至首页 '''
if response.geturl() == "http://www.douban.com/":
print 'login success ! '
print '准备进行发帖'
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"] = '好了,发言'
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程序设计有所帮助。
标签:python,登录,豆瓣
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
php桥接模式的实例用法及代码分析
2023-11-18 15:46:33
有时间先后的翻页
2008-05-23 13:14:00
![](https://img.aspxhome.com/file/UploadPic/20085/23/2008523131914487s.gif)
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2021-12-21 19:37:29
![](https://img.aspxhome.com/file/2023/6/77646_0s.jpg)
CSS Sprites
2007-10-10 13:21:00
谈谈Python进行验证码识别的一些想法
2022-09-19 12:50:53
![](https://img.aspxhome.com/file/2023/5/68955_0s.png)
asp中字符编码转换的10个函数[荐]
2007-11-11 10:32:00
CSS执行顺序与优先权的问题
2010-08-23 16:21:00
SQL Server数据库入门学习总结
2012-08-21 11:01:33
ASP分页显示Recordset数据
2008-11-07 15:43:00
Python HTMLParser模块解析html获取url实例
2023-08-18 01:09:47
SQL Server 2005数据库中表的递归查询
2009-01-08 16:08:00
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2023-07-23 12:51:08
![](https://img.aspxhome.com/file/2023/7/64327_0s.png)
JS+CSS实现仿支付宝菜单选中效果代码
2023-10-05 07:29:01
![](https://img.aspxhome.com/file/2023/2/56352_0s.png)
python 输出上个月的月末日期实例
2022-11-30 16:33:11
jenkins配置python脚本定时任务过程图解
2023-11-12 12:57:15
![](https://img.aspxhome.com/file/2023/6/64046_0s.png)
jquery AJAX 三个发送状态 posting, error, success
2010-07-31 18:59:00
python滑块验证码的破解实现
2023-11-27 11:46:17
![](https://img.aspxhome.com/file/2023/7/70677_0s.png)
PHP面向接口编程 耦合设计模式 简单范例
2023-10-24 09:18:27
Python快速实现一键抠图功能的全过程
2021-03-03 14:58:39
![](https://img.aspxhome.com/file/2023/6/66926_0s.png)
python+selenium实现登录账户后自动点击的示例
2021-07-26 05:40:21