python登录豆瓣并发帖的方法

本文实例讲述了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程序设计有所帮助。

(0)

相关推荐

  • python正则匹配抓取豆瓣电影链接和评论代码分享

    复制代码 代码如下: import urllib.requestimport reimport time def movie(movieTag): tagUrl=urllib.request.urlopen(url)    tagUrl_read = tagUrl.read().decode('utf-8')    return tagUrl_read def subject(tagUrl_read): '''         这里还存在问题:        ①这只针对单独的一页进行排序,而没有

  • 编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法

    抓取豆瓣电影TOP100 一.分析豆瓣top页面,构建程序结构 1.首先打开网页http://movie.douban.com/top250?start,也就是top页面 然后试着点击到top100的页面,注意带top100的链接依次为 http://movie.douban.com/top250?start=0 http://movie.douban.com/top250?start=25 http://movie.douban.com/top250?start=50 http://movie

  • python获取豆瓣电影简介代码分享

    复制代码 代码如下: #!/usr/bin/env python#coding:utf-8import re,sysimport urllibfrom bs4 import BeautifulSoupglobal r_url def hq_url():    so_url = "http://movie.douban.com/subject_search?search_text="    data = urllib.urlopen(so_url+gjz).read()    r = r

  • python抓取豆瓣图片并自动保存示例学习

    环境Python 2.7.6,BS4,在powershell或命令行均可运行.请确保安装了BS模块 复制代码 代码如下: # -*- coding:utf8 -*-# 2013.12.36 19:41 wnlo-c209# 抓取dbmei.com的图片. from bs4 import BeautifulSoupimport os, sys, urllib2 # 创建文件夹,昨天刚学会path = os.getcwd()          # 获取此脚本所在目录new_path = os.pat

  • Python实现豆瓣图片下载的方法

    本文实例讲述了Python实现豆瓣图片下载的方法.分享给大家供大家参考.具体分析如下: 1 用 tk 封装一下 2 用户可以自己输入图片url download_douban_album # -*-coding:UTF-8 -*- import re import urllib def count_percent(a, b, c): per = 100.0 * a * b / c if per > 100: per = 100 print '%.2f%%' % per def get_url()

  • python使用urllib模块开发的多线程豆瓣小站mp3下载器

    复制代码 代码如下: #! /usr/bin/python2.7# -- coding:utf-8 -- import os, urllib,urllib2, thread,threadingimport re #匹配音乐urlreg=re.compile('{"name":"(.+?)".+?"rawUrl":"(.+?)",.+?}', re.I) class downloader(threading.Thread):  

  • python登录豆瓣并发帖的方法

    本文实例讲述了python登录豆瓣并发帖的方法.分享给大家供大家参考.具体如下: 这里涉及urllib.urllib2及cookielib常用方法的使用 登录豆瓣,由于有验证码,采取的办法是将验证码图片下载到同目录下,查看图片后输入验证码即可登录.发帖 帖子内容写死在代码中了 # -- coding:gbk -- import sys, time, os, re import urllib, urllib2, cookielib loginurl = 'https://www.douban.co

  • 详解如何用Python登录豆瓣并爬取影评

    目录 一.需求背景 二.功能描述 三.技术方案 四.登录豆瓣 1.分析豆瓣登录接口 2.代码实现登录豆瓣 3.保存会话状态 4.这个Session对象是我们常说的session吗? 五.爬取影评 1.分析豆瓣影评接口 2.爬取一条影评数据 3.影评内容提取 4.批量爬取 六.分析影评 1.使用结巴分词 七.总结 上一篇我们讲过Cookie相关的知识,了解到Cookie是为了交互式web而诞生的,它主要用于以下三个方面: 会话状态管理(如用户登录状态.购物车.游戏分数或其它需要记录的信息) 个性化

  • python selenium实现登录豆瓣示例详解

    使用python爬虫selenium访问豆瓣https://www.douban.com/,实现模拟登录过程. 网页界面如图所示 首先导包后,定位图中 密码登录 的element,并点击. 经分析,该标签的class_name为’account-tab-account’. from selenium import webdriver import time driver = webdriver.Chrome() driver.get('https://www.douban.com/') # 点击

  • python通过ftplib登录到ftp服务器的方法

    本文实例讲述了python通过ftplib登录到ftp服务器的方法.分享给大家供大家参考.具体实现方法如下: import ftplib connect = ftplib.FTP("www.mysite.com") connect.login("domain\user", "password") data = [] connect.dir(data.append) connect.quit() for line in data: print(li

  • python登录pop3邮件服务器接收邮件的方法

    本文实例讲述了python登录pop3邮件服务器接收邮件的方法.分享给大家供大家参考.具体实现方法如下: import poplib, string PopServerName = "mail.yourserver.com" PopServer = poplib.POP3(PopServerName) print PopServer.getwelcome() PopServer.user('yourName') PopServer.pass_('yourPass') r, items,

  • 利用Python模拟登录pastebin.com的实现方法

    任务 在https://pastebin.com网站注册一个账号,利用python实现用户的自动登录和创建paste.该任务需要分成如下两步利用python实现: 1.账号的自动登录 2.paste的自动创建 模拟账号登录 模拟登录,需要知道登录的URL是什么,那么登录URL怎么去看呢. 进入https://pastebin.com/之后,发现是以访客的身份进入的,点击身份图像的下拉中的LOGIN,进入登录页面,打开Chrome开发工具,选择Network,勾选Preserve log: 输入用

  • 详解python 模拟豆瓣登录(豆瓣6.0)

    最近在学习python爬虫,看到网上有很多关于模拟豆瓣登录的例子,随意找了一个试了下,发现不能运行,对比了一下代码和豆瓣网站,发现原来是豆瓣网站做了修改,增加了反爬措施. 首先看下要模拟登录的网站: 打开开发者模式: 在账号和密码随意填入数据: 发现会发送一个post请求: ur是:https://accounts.douban.com/j/mobile/login/basic 数据格式是: 于是可以来编写代码: import requests def main(): url_basic = '

  • python爬虫豆瓣网的模拟登录实现

    思路 一.想要实现登录豆瓣关键点 分析真实post地址 ----寻找它的formdata,如下图,按浏览器的F12可以找到. 实战操作 实现:模拟登录豆瓣,验证码处理,登录到个人主页就算是success 数据:没有抓取数据,此实战主要是模拟登录和处理验证码的学习.要是有需求要抓取数据,编写相关的抓取规则即可抓取内容. 登录成功展示如图: spiders文件夹中DouBan.py主要代码如下: # -*- coding: utf-8 -*- import scrapy,urllib,re from

  • python selenium登录豆瓣网过程解析

    登录流程: 实例化一个driver,然后driver.get()发送请求 最重要的:切换iframe子框架,因为豆瓣的网页中的登录那部分是一个ifrme,必须切换才能寻找到对应元素 利用selenium切换到账号密码登录 利用selenium输入账户和密码 利用selenium点击登录按钮 然后利用字典推导式保存了一下cookie 代码实现: import time from selenium import webdriver # 实例化driver driver = webdriver.Chr

随机推荐