python3模擬IP進行刷投票

2021-10-03 13:37:47 字數 2630 閱讀 1084

現在各種投票活動,各個做投票的公司都為公平性,增加了每個ip只能投一票。但是python拿到 這個**提供的高匿ip,就能模仿ip,進行投票了。

# coding=utf-8

import re

import random

import sys

import time

import datetime

import threading

from random import choice

import requests

import bs4

def get_ip():

"""獲取**ip"""

url = ""

"accept-encoding":"gzip, deflate, sdch",

"accept-language":"zh-cn,zh;q=0.8,en;q=0.6",

"referer":"",

}r = requests.get(url,headers=headers)

soup = bs4.beautifulsoup(r.text, 'html.parser')

data = soup.table.find_all("td")

ip_compile= re.compile(r'(\d+\.\d+\.\d+\.\d+)') # 匹配ip

port_compile = re.compile(r'(\d+)') # 匹配埠

ip = re.findall(ip_compile,str(data)) # 獲取所有ip

port = re.findall(port_compile,str(data)) # 獲取所有埠

return [":".join(i) for i in zip(ip,port)] # 組合ip+埠,如:115.112.88.23:8080

# 設定 user-agent列表,每次請求時,可在此列表中隨機挑選乙個user-agnet

"""投票

如果因為**ip不可用造成投票失敗,則會自動換乙個**ip後繼續投

"""try:

ip = choice(ips)

except:

return false

else:

proxies =

headers2 =

datas =

try:

hz_r = requests.post(hz_url,headers=headers2,data=datas,proxies=proxies)

except requests.exceptions.connectionerror:

print ("connectionerror")

if not ips:

print ("not ip")

sys.exit()

# 刪除不可用的**ip

if ip in ips:

ips.remove(ip)

# 重新請求url

get_url(code,ips)

else:

date = datetime.datetime.now().strftime('%h:%m:%s')

print (u"第%s次 [%s] [%s]:投票%s (剩餘可用**ip數:%s)" % (code,date,ip,hz_r.text,len(ips)))

ips =

for i in range(6000):

# 每隔1000次重新獲取一次最新的**ip,每次可獲取最新的100個**ip

if i % 1000 == 0:

ips.extend(get_ip())

# 啟用執行緒,隔1秒產生乙個執行緒,可控制時間加快投票速度 ,time.sleep的最小單位是毫秒

t1 = threading.thread(target=get_url,args=(i,ips))

t1.start()

time.sleep(1)

Python3對IP進行查詢

日常學習記錄,大佬勿噴,侵權請私聊我,我會立即處理 usr bin python3 coding utf 8 author valecalida from bs4 import beautifulsoup import requests import random import time impor...

python3進行excel操作

只要有需求,就會找出解決問題的方法 pip install xlrd 讀取 pip install xlwt 寫入 首先先初始化 import xlwt excel xlwt.workbook encoding utf 8 建立excel sheet excel.add sheet member 建...

Python3必備刷題基礎

list.insert index,obj 在index處插入物件 list.index obj,start,end 找出與obj第乙個匹配項的索引位置,start和end可選。list.remove obj 移除列表中某個物件的第乙個匹配項 list.pop index 1 obj移除乙個元素並返...