1. 程式人生 > >贊最多就是班長!Python寫了個刷贊程式!誰叫我女兒有個程式設計師爹

贊最多就是班長!Python寫了個刷贊程式!誰叫我女兒有個程式設計師爹

朋友圈貼出來的那個連結我就不用出來了,畢竟裡面有小孩子們的隱私,而且我這麼做的目的雖然是不公平,但是是我女兒所不知道的情況下進行的,每個父親都有私心吧!畢竟她還小,所以應該多多歷練一下也好,希望我女兒能成長的更好,更快吧!所以確實是不公平,本來世界就是不公平的不!但是還是想歷練一下自己的女兒,別以後被哪個臭小子給禍害了,還找不到北!只有女兒自己強大了,那群臭小子才不會敢不懷好意的搭訕我女兒嘛,當然我女兒還小咯,才一年級!好了話不多說!上程式碼,上教程,希望這教程也能幫到你們,切勿用來商用,否則後果自負!

1.分析

  • 先手動投票檢視網頁提交的請求

贊最多就是班長!Python寫了個刷贊程式!誰叫我女兒有個程式設計師爹

 

點選投票網頁提交的請求

贊最多就是班長!Python寫了個刷贊程式!誰叫我女兒有個程式設計師爹

 

投票成功返回的json資料,可以看到是result:1

贊最多就是班長!Python寫了個刷贊程式!誰叫我女兒有個程式設計師爹

 

為公司投票時提交的引數

進群:548377875  即可獲取數十套PDF!

贊最多就是班長!Python寫了個刷贊程式!誰叫我女兒有個程式設計師爹

 

點選'為我點贊'網頁提交的請求

贊最多就是班長!Python寫了個刷贊程式!誰叫我女兒有個程式設計師爹

 

點贊時提交的引數

通過分析可以看到網頁實際上並沒有針對同一IP的投票進行限制,所以不需要進行使用代理IP,但是為了使我們的程式碼更加符合常規網站的對同一IP限制投票的機制,所以這裡抓取一個代理IP的網站進行點選投票

提供不錯幾個的短期代理IP網站

私信小編 007 即可獲取相關原始碼!

  • 西刺免費代理IP
  • 快代理免費代理
  • Proxy360代理
  • 全網代理IP
  • 目標網址:西刺免費代理IP

贊最多就是班長!Python寫了個刷贊程式!誰叫我女兒有個程式設計師爹

 

檢視網頁結構每一個代理IP和埠都在一個標籤中,我們可以通過正則篩選出我們想要的結果

2.小試牛刀(程式碼基於Python 2.7)

下面是實際的程式碼,讓我們刷起來。

#-*- coding:utf-8 -*-

import requests

import json

import re

import random

import sys

import time

import datetime #處理日期和時間的標準庫

import threading #引入多執行緒

from random import choice #choice() 方法返回一個列表,元組或字串的隨機項

from bs4 import BeautifulSoup

from fake_useragent import UserAgent #引入userAgentdef get_ip():

'''獲取代理IP'''

url = 'http://www.xicidaili.com/nn'

my_headers = {

'Accept': 'text/html, application/xhtml+xml, application/xml;',

'Accept-Encoding': 'gzip, deflate, sdch',

'Accept-Language': 'zh-CN,zh;q=0.8',

'Referer': 'http: // www.xicidaili.com/nn',

'User-Agent': 'Mozilla / 5.0(Windows NT 6.1;WOW64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 45.0.2454.101Safari / 537.36'

}

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

soup = BeautifulSoup(r.text,'html.parser')

data = soup.find_all('td')

#定義IP和埠Pattern規則

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)) #獲取所有埠

z = [':'.join(i) for i in zip(ip,port)] #列表生成式

print z #組合IP和埠

return z

# 設定user-agent列表,每次請求時,隨機挑選一個user-agent

ua_list =

UserAgent()print ua_list.randomdef get_url(url,code=0,ips=[]):

'''

投票

如果因為代理IP已失效造成投票失敗,則會自動換一個代理IP後繼續投票

:param code:

:param ips:

:return:

'''

try:

ip = choice(ips)

except:

return False

else:

#指定IP

proxies = {

'http':ip

}

headers = {

'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',

'Host': 'best.zhaopin.com',

'Origin': 'https: // best.zhaopin.com',

'Referer':'https//best.zhaopin.com/?sid=121128100&site=sou',

# 'User-Agent':choice(ua_list)

'User-Agent': ua_list.random

}

print ua_list.random

try:

data = {"bestid": "3713", "score": "5,5,5,5,5,5","source": "best",}

result = requests.post(url=url,data=data, proxies=proxies,) # 跳過證書的驗證 verify=False

except requests.exceptions.ConnectionError:

print 'ConnectionError'

if not ips:

print 'ip 已失效'

sys.exit() #刪除不可用的代理IP

if ip in ips:

ips.remove(ip) #重新請求url

get_url(url,code=0,ips=[])

else:

date = datetime.datetime.now().strftime('%H:%M:%S') # result.text() 投票成功顯示1 失敗顯示0

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

def get_num(num):

#點讚的請求

url1 = 'https://best.zhaopin.com/API/Vote.ashx'

#投票的請求

url2 = 'https://best.zhaopin.com/API/ScoreCompany.ashx'

if num == 1:

url=url1

main(url)

elif num == 2:

url =url2

main(url)

else:

print '您的輸入有誤,請重新輸入!!!'

num = int(raw_input('自主刷贊請選1,自動投票請選2:'))

get_num(num)

def main(url):

ips = []

#xrange() 生成的是一個生成器

for i in xrange(6000):

# 每隔1000次重新獲取一次最新的代理IP,每次可獲取最新的100個代理IP

if i % 1000 == 0:

ips.extend(get_ip())

print '--------------------------------------' print ips

#啟動執行緒,每隔1s產生一個執行緒,可通過控制時間加快投票速度

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

t1.start()

time.sleep(1) #time.sleep的最小單位是毫秒if __name__ == '__main__':

# #點讚的請求

# url1 = 'https://best.zhaopin.com/API/Vote.ashx'

#

#投票的請求

# url2 = 'https://best.zhaopin.com/API/ScoreCompany.ashx'

print '歡迎使用自助刷票小工具QAQ'

num = int(raw_input('自主刷贊請選1,自動投票請選2:'))

get_num(num)

  • 執行程式

贊最多就是班長!Python寫了個刷贊程式!誰叫我女兒有個程式設計師爹

 

開啟程式,

可以看到每次投票的IP已不再是我們本機IP

截止到這裡,現在我們已經成功的解釋並且展示了“刷票”的一個簡單的流程,但是還是要在結尾再次宣告一下,本文主旨在於讓大家更清楚的瞭解刷票這一壞現象,而不是叫大家做一些不合理甚至不合法的事情哦!