只要是投票系统,必然要限制一个用户投多张票。

如何限制呢?限制ip是最直观最简单的思路,可是代理池可以解决限制ip的情况。
如果投票页面前面加上一个验证码,那程序就会有点困难了。

有些投票使用微信号,一个微信号只允许投一张票。这个其实是非常安全的。因为微信号的获取比ip的获取麻烦多了。人们可以很容易地制造出ip池,却难以构造一个微信号池。

于是,如何限制用户就很简单了:什么东西是一人一份并且人们不会把自己的借给别人用。

回到本文上来,限制ip可以用代理池应对。

ip代理池网上有很多收费的,也有很多免费的。
编一个爬虫把ip地址爬下来,构成一个ip库。逐个尝试这个ip库,对于每个ip直到被封了就切换ip,直到把全部ip库试玩一遍。如果还没有完成任务,重新从免费ip代理网站上爬取ip库。

import reimport requests
from pyquery import PyQuery as pq# 查看投票界面,返回候选人信息列表
def seepage(out=True):resp = requests.get("http://www.ciotimes.com/index.php?m=toupiao&c=index&a=init&formart=fx&from=timeline&isappinstalled=0")html = pq(resp.text)box = html(".liebiao-bottom-box")  # 候选人列表people = []for i in range(box.length):it = box.eq(i)name = it(".liebiao-name").text()name = re.sub('\s', '', name)desc = it(".liebiao-jieshao").text()id_ = it(".liebiao-button-box button").val()value = it(".liebiao-piaonum span").text()if out:print(name, desc, id_, value)people.append({'name': name,'desc': desc,'id': id_,'value': value})return people# 按照proxy给id投票,返回投票是否成功
def toupiao(id, proxy):id = str(id)try:resp = requests.get("http://www.ciotimes.com/index.php?m=toupiao&c=index&a=add_form&id=" + id, proxies={'http': proxy}, timeout=2)return int(resp.text)except:return -1# 查看id候选人当前票数
def howmany(id):for i in seepage(out=False):if i['id'] == id:return i['value']# 从网上免费ip池中,获取ip列表
def getips():urls = ["http://www.xicidaili.com/nn", "http://www.xicidaili.com/nt", "http://www.xicidaili.com/wn","http://www.xicidaili.com/wt"]ans = []for i in urls:resp = requests.get(i, headers={"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8","Accept-Encoding": "gzip, deflate","Accept-Language": "zh-CN,zh;q=0.8","Cache-Control": "max-age=0","Connection": "keep-alive","Host": "www.xicidaili.com","Upgrade-Insecure-Requests": "1","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36"})trs = pq(resp.text)("#ip_list tr")for j in range(trs.length):tr = trs.eq(j)tds = tr("td")if len(tds) != 10: continueip = tds.eq(1).text()port = tds.eq(2).text()ans.append(ip + ":" + port)return list(set(ans))# 给id候选人投票cnt次,如果失败了就换ip
def go(id, cnt):counter = 0while counter < cnt:for i in getips():print(i)while toupiao(id, i) == 0:counter += 1print(counter)if counter >= cnt:returngo(194, 1000)

转载于:https://www.cnblogs.com/weiyinfu/p/7498177.html

使用免费ip代理进行投票相关推荐

  1. Python创建免费Ip代理池,伪装Ip。

    Python创建免费Ip代理池 主要使用requests第三方库.欸嘿,有了这个,就不用花钱买Ip了,生活小妙招.妙哇. 一.具体思路 1.利用requests爬取免费代理Ip的网页 2.存储列表后, ...

  2. 免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作简易流量爬虫...

    前言 我们之前的爬虫都是模拟成浏览器后直接爬取,并没有动态设置IP代理以及UserAgent标识,这样很容易被服务器封IP,因此需要设置IP代理,但又不想花钱买,网上有免费IP代理,但大多都数都是不可 ...

  3. 爬虫利器:Python获取免费IP代理

    由于现在很多网站都有反爬虫机制,同一个ip不能频繁访问同一个网站,这就使得我们在进行大量数据爬取时需要使用代理进行伪装,本博客给出几个免费ip代理获取网站爬取ip代理的代码,可以嵌入到不同的爬虫程序中 ...

  4. python免费IP代理,简单采集一下康康能不能用~

    嗨害大家好鸭!我是小熊猫❤ 最近疫情有一点严重 在家不知道整点啥好 整个免费的IP代理康康好用不好用 基本开发环境 Python 3.6 Pycharm 相关模块的使用 import requests ...

  5. Scrapy抓取免费ip代理地址的示例

    Scrapy是一个用于爬取网站并提取结构化数据的应用程序框架,可用于各种有用的应用程序,例如数据挖掘,信息处理或历史档案.本文主要描述从某IP代理网站抓取内容的代码示例,免费代理IP时效性很差,仅供大 ...

  6. python利用proxybroker构建爬虫免费IP代理池!不用担心被封了!

    大纲 前言 ProxyBroker简介 ProxyBroker安装 在终端使用ProxyBroker 在代码中使用ProxyBroker 总结 前言 写爬虫的小伙伴可能遇到过这种情况: 正当悠闲地喝着 ...

  7. 利用爬虫获取免费IP代理

    项目目标 通过爬虫获取"西拉代理"(http://www.xiladaili.com)上的高匿代理,并储存至一个列表. 项目分析 首先对网页进行观察,主体内容如下图所示. 不但指明 ...

  8. 为什么不建议使用免费的IP代理?

    免费的IP代理很好找到,通过搜索引擎可以找到很多的免费IP代理服务商.虽然它也可以隐藏用户真实的IP地址,但同时也存在很多缺陷,比如连接不稳定.安全性较低等问题.以下是一些不建议使用免费IP代理的理由 ...

  9. 爬取免费代理上网/组建IP代理池

    使用python爬虫对网上公开免费代理网站进行爬取,组件自己的代理池进行代理上网 先找到某公开免费代理网站 程序思路非常清晰明确,直接放到爬虫代码里,就不单独介绍 编写程序脚本进行捕获源码和清洗 im ...

最新文章

  1. 历届华人 AAAI Fellows
  2. java设计模式---观察者模式
  3. nginx虚拟域名配置
  4. linux怎么db2命令窗口,Linux 命令行进入DB2
  5. (转)“版本上线延时”问题与对策的探讨
  6. Luogu5889 跳树
  7. nifi集群_nifi架构
  8. 基本函数依赖和候选键_给定一组字母表示的函数依赖集,怎样确定候选键?
  9. 全网最详细的排列组合系列算法题整理
  10. 2020.9.2丨遗传图谱产品类型
  11. mini6410移植全攻略(3)--uboot移植之支持nand flansh启动(上)
  12. TS装饰器、混入Mixins、TS模块、命名空间
  13. 【matlab 求极限】limit函数求极限
  14. APP爬虫| 逆向神器 frida 初试
  15. 我学习VC中所得的点点心得
  16. 免费Google地图API使用说明
  17. Qt扫盲-Bar柱状图理论
  18. supervisor的安装及使用
  19. java使用腾讯地图根据位置获取经纬度信息
  20. 鹰眼AI:鸿蒙系统的企业级安全监控工具

热门文章

  1. 今夜,昆山请将我遗忘 2009-01-06 01:59
  2. 题解P3711:【仓鼠的数学题】
  3. JAVA-常量、运算符、类型转换、Scanner
  4. jquery blockui 遮罩【转】
  5. 博客主机_自动申请续期免费证书
  6. 学习笔记_vnpy实战培训day01
  7. K-means均值聚类算法的原理与实现
  8. 关于final、finally、finalize
  9. doctor mysql数据导入_线上环境mysql主从同步的搭建过程
  10. 2020运动相机推荐_2020年优秀户外运动相机推荐