1. import urllib.request
  2. # cd C:\Python36-32\Scripts
  3. # pip install BeautifulSoup
  4. from bs4 import BeautifulSoup
  5.  
  6. def vote(get_url, post_url, option):
  7. # 访问投票页面,拿到cookie
  8. resp = urllib.request.urlopen(get_url)
  9. cookie = resp.getheader('Set-Cookie')
  10. # print(cookie)
  11.  
  12. # 读取response信息
  13. html = resp.read()
  14. # HTML解析器,拿到vote_option
  15. bs = BeautifulSoup(html, "html.parser")
  16. # 后台校验的动态验证码,随自己业务调整
  17. secret_key = bs.find('input', id='secret_key').get("value")
  18. # print(vote_option)
  19.  
  20. # hearders部分,cookie等
  21. headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0',
  22. 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  23. 'Cookie': cookie}
  24.  
  25. # post提交的数据,第一个为选中的复选框选项(多个中间逗号分隔),第二个为动态码(后台校验)
  26. data_json = {'option': option, 'secret_key': secret_key}
  27. # string转为byte类型,因为客户端校验要求
  28. data = urllib.parse.urlencode(data_json).encode("utf-8")
  29. # post请求,提交投票数据
  30. req = urllib.request.Request(post_url, headers=headers, data=data)
  31. response = urllib.request.urlopen(req)
  32. # 查看返回结果,转码为中文
  33. print(bytes.decode(response.read()))
  34.  
  35. def deal():
  36. # get连接、post链接、选项 根据自己业务修改
  37. get_url = ""
  38. post_url = ""
  39. option = ""
  40. vote(get_url, post_url, option)
  41.  
  42. deal()

python3 投票的更多相关文章

  1. Python3实现机器学习经典算法(三)ID3决策树

    一.ID3决策树概述 ID3决策树是另一种非常重要的用来处理分类问题的结构,它形似一个嵌套N层的IF…ELSE结构,但是它的判断标准不再是一个关系表达式,而是对应的模块的信息增益.它通过信息增益的大小 ...

  2. Python3.x:代理ip刷点赞

    Python3.x:代理ip刷点赞 声明:仅供为学习材料,不允许用作商业用途: 一,功能: 针对某网站对企业自动刷点赞: 网站:https://best.zhaopin.com/ 二,步骤: 1,获取 ...

  3. Python3实现机器学习经典算法(四)C4.5决策树

    一.C4.5决策树概述 C4.5决策树是ID3决策树的改进算法,它解决了ID3决策树无法处理连续型数据的问题以及ID3决策树在使用信息增益划分数据集的时候倾向于选择属性分支更多的属性的问题.它的大部分 ...

  4. Django新建第一个投票应用

    1:在Pycharm的命令端口,确保执行文件路径是与mysite同级 $ python3 manage.py startapp polls 系统会自动生成polls应用的目录,其结构如下 polls/ ...

  5. python3.5+django2.0快速入门(一)

    因为这篇教程需要用到anaconda的一些操作,如果还不懂anaconda的操作的同学可以看下这篇文章python 入门学习之anaconda篇. 创建python3+的开发环境 直接在终端输入:co ...

  6. 使用Redis构建文章投票网站

    涉及到的key: 1. article_time, 记录文章的发布时间,zset结构 2. article_score, 记录文章的得分, zset结构 得分 = 发布时间 + 投票用户数 X 432 ...

  7. Django(投票程序)

    Django是一个web框架,python编写的. MTV模式 Django的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同 -M代表模型(Model ):负责 ...

  8. python3  threading初体验

    python3中thread模块已被废弃,不能在使用thread模块,为了兼容性,python3将thread命名为_thread.python3中我们可以使用threading进行代替. threa ...

  9. 运用php做投票题,例题

    要求大概是这样的,有一个题目,题目下面是复选框,要求点完复选框提交后会变成进度条,各选项的进度条百分比,和投票数量 首先还是要在数据库建两张表,如下: 要完成这个题目,需要建两个页面 <!DOC ...

随机推荐

  1. 15.stop引发的数据不一致

    /** * 数据不一致问题 * stop */ public class StopDemo { public static Student student = new Student(); publi ...

  2. 基于CentOS 7.3 安装Ceph Jewel 10.2.9

    https://www.lijiawang.org/posts/intsall-ceph.html 配置说明: 采用了4台centos7.3系统的虚拟机,1台Ceph-Master作为安装节点,NTP ...

  3. redis requires Ruby version >= 2.2.2.

    安装RVM 无法在服务器使用curl命令访问https域名,原因是nss版本有点旧了,yum -y update nss更新一下 yum -y update nss 新建rvm-installer.s ...

  4. 自己封装 vue 组件 和 插件

    vue 组件 一.组件的创建,两种方法.(本质上是1.2两种,vue文件,只是创建了一个  组件选项对象,仅是一个js对象)1.定义组件:Vue.component('button-counter', ...

  5. commonJs的运行时加载和es6的编译时加载

    参考 : https://www.cnblogs.com/jerrypig/p/8145206.html 1.commonJs的运行时加载 2.ES6编译时加载

  6. ASP.NET MVC 随手记

    ViewBag: 本质上市一个字典,提供了一种View可以访问的动态数据存储.这里用到了.NET 4.0的动态语言特性.可以给ViewBag添加任意属性,并且这个属性是动态创建的,不需要修改类的定义就 ...

  7. MySQL concat、concat_ws 和 group_concat 的用法

    一.CONCAT()函数CONCAT()函数用于将多个字符串连接成一个字符串.使用数据表Info作为示例,其中SELECT id,name FROM info LIMIT 1;的返回结果为+----+ ...

  8. kafka ProducerConfig 配置

    kafka-clients : 1.0.1

  9. 个人笔记 - MATLAB

    1.教程 2.基本知识 2.1 帮助文档设置成中文:链接1 2.2 多行注释: 链接1 2.3 MATLAB基本数据类型: 链接1  链接2 2.4 matlab中的 ndims(a).length( ...

  10. jQuery Mobile 自定义导航条图标

    1.jQuery Mobile 自定义导航条图标