使用免费ip代理进行投票
只要是投票系统,必然要限制一个用户投多张票。
如何限制呢?限制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代理进行投票相关推荐
- Python创建免费Ip代理池,伪装Ip。
Python创建免费Ip代理池 主要使用requests第三方库.欸嘿,有了这个,就不用花钱买Ip了,生活小妙招.妙哇. 一.具体思路 1.利用requests爬取免费代理Ip的网页 2.存储列表后, ...
- 免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作简易流量爬虫...
前言 我们之前的爬虫都是模拟成浏览器后直接爬取,并没有动态设置IP代理以及UserAgent标识,这样很容易被服务器封IP,因此需要设置IP代理,但又不想花钱买,网上有免费IP代理,但大多都数都是不可 ...
- 爬虫利器:Python获取免费IP代理
由于现在很多网站都有反爬虫机制,同一个ip不能频繁访问同一个网站,这就使得我们在进行大量数据爬取时需要使用代理进行伪装,本博客给出几个免费ip代理获取网站爬取ip代理的代码,可以嵌入到不同的爬虫程序中 ...
- python免费IP代理,简单采集一下康康能不能用~
嗨害大家好鸭!我是小熊猫❤ 最近疫情有一点严重 在家不知道整点啥好 整个免费的IP代理康康好用不好用 基本开发环境 Python 3.6 Pycharm 相关模块的使用 import requests ...
- Scrapy抓取免费ip代理地址的示例
Scrapy是一个用于爬取网站并提取结构化数据的应用程序框架,可用于各种有用的应用程序,例如数据挖掘,信息处理或历史档案.本文主要描述从某IP代理网站抓取内容的代码示例,免费代理IP时效性很差,仅供大 ...
- python利用proxybroker构建爬虫免费IP代理池!不用担心被封了!
大纲 前言 ProxyBroker简介 ProxyBroker安装 在终端使用ProxyBroker 在代码中使用ProxyBroker 总结 前言 写爬虫的小伙伴可能遇到过这种情况: 正当悠闲地喝着 ...
- 利用爬虫获取免费IP代理
项目目标 通过爬虫获取"西拉代理"(http://www.xiladaili.com)上的高匿代理,并储存至一个列表. 项目分析 首先对网页进行观察,主体内容如下图所示. 不但指明 ...
- 为什么不建议使用免费的IP代理?
免费的IP代理很好找到,通过搜索引擎可以找到很多的免费IP代理服务商.虽然它也可以隐藏用户真实的IP地址,但同时也存在很多缺陷,比如连接不稳定.安全性较低等问题.以下是一些不建议使用免费IP代理的理由 ...
- 爬取免费代理上网/组建IP代理池
使用python爬虫对网上公开免费代理网站进行爬取,组件自己的代理池进行代理上网 先找到某公开免费代理网站 程序思路非常清晰明确,直接放到爬虫代码里,就不单独介绍 编写程序脚本进行捕获源码和清洗 im ...
最新文章
- 历届华人 AAAI Fellows
- java设计模式---观察者模式
- nginx虚拟域名配置
- linux怎么db2命令窗口,Linux 命令行进入DB2
- (转)“版本上线延时”问题与对策的探讨
- Luogu5889 跳树
- nifi集群_nifi架构
- 基本函数依赖和候选键_给定一组字母表示的函数依赖集,怎样确定候选键?
- 全网最详细的排列组合系列算法题整理
- 2020.9.2丨遗传图谱产品类型
- mini6410移植全攻略(3)--uboot移植之支持nand flansh启动(上)
- TS装饰器、混入Mixins、TS模块、命名空间
- 【matlab 求极限】limit函数求极限
- APP爬虫| 逆向神器 frida 初试
- 我学习VC中所得的点点心得
- 免费Google地图API使用说明
- Qt扫盲-Bar柱状图理论
- supervisor的安装及使用
- java使用腾讯地图根据位置获取经纬度信息
- 鹰眼AI:鸿蒙系统的企业级安全监控工具