鱼C论坛

 找回密码
 立即注册
查看: 2436|回复: 1

[已解决]一段代码不太懂,是2.7版本的

[复制链接]
发表于 2016-7-11 01:14:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1.    
  2. # -- coding:gbk --
  3. import sys, time, os, re
  4. import urllib, urllib2, cookielib
  5. loginurl = 'https://www.douban.com/accounts/login'
  6. cookie = cookielib.CookieJar()
  7. opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
  8. params = {
  9. "form_email":"your email",
  10. "form_password":"your password",
  11. "source":"index_nav" #没有的话登录不成功
  12. }
  13. #从首页提交登录
  14. response=opener.open(loginurl, urllib.urlencode(params))
  15. #验证成功跳转至登录页
  16. if response.geturl() == "https://www.douban.com/accounts/login":
  17.   html=response.read()
  18.   #验证码图片地址
  19.   imgurl=re.search('<img id="captcha_image" src="(.+?)" alt="captcha" class="captcha_image"/>', html)
  20.   if imgurl:
  21.     url=imgurl.group(1)
  22.     #将图片保存至同目录下
  23.     res=urllib.urlretrieve(url, 'v.jpg')
  24.     #获取captcha-id参数
  25.     captcha=re.search('<input type="hidden" name="captcha-id" value="(.+?)"/>' ,html)
  26.     if captcha:
  27.       vcode=raw_input('请输入图片上的验证码:')
  28.       params["captcha-solution"] = vcode
  29.       params["captcha-id"] = captcha.group(1)
  30.       params["user_login"] = "登录"
  31.       #提交验证码验证
  32.       response=opener.open(loginurl, urllib.urlencode(params))
  33.       ''' 登录成功跳转至首页 '''
  34.       if response.geturl() == "http://www.douban.com/":
  35.         print 'login success ! '
  36.         print '准备进行发帖'
  37.         p={"ck":""}
  38.         c = [c.value for c in list(cookie) if c.name == 'ck']
  39.         if len(c) > 0:
  40.           p["ck"] = c[0].strip('"')   
  41.         addtopicurl="http://www.douban.com/group/python/new_topic"
  42.         res=opener.open(addtopicurl)
  43.         html=res.read()
  44.         m= re.search('<input type="hidden" name="topic_id" value="(.+?)">', html)
  45.         p["topic_id"] = m.group(1)
  46.         m= re.search('<input type="hidden" name="topic_id_sig" value="(.+?)">', html)
  47.         p["topic_id_sig"] = m.group(1)
  48.         p["rev_title"] = 'title'
  49.         p["rev_text"] = 'send body'
  50.         p["rev_submit"] = '好了,发言'
  51.         request=urllib2.Request(addtopicurl)
  52.         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")
  53.         request.add_header("Accept-Charset", "GBK,utf-8;q=0.7,*;q=0.3")
  54.         request.add_header("Origin", "http://www.douban.com")
  55.         request.add_header("Referer", "http://www.douban.com/group/python/new_topic")
  56.         opener.open(request, urllib.urlencode(p)
复制代码




由于完整
中间有一句
        p={"ck":""}
        c = [c.value for c in list(cookie) if c.name == 'ck']
        if len(c) > 0:
          p["ck"] = c[0].strip('"')   

豆瓣ck值是什么鬼
最佳答案
2016-7-11 09:53:05
ck  Cookie验证码,豆瓣跨域漏洞
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-11 09:53:05 | 显示全部楼层    本楼为最佳答案   
ck  Cookie验证码,豆瓣跨域漏洞
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 07:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表