博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python3.x:代理ip刷点赞
阅读量:4508 次
发布时间:2019-06-08

本文共 3723 字,大约阅读时间需要 12 分钟。

Python3.x:代理ip刷点赞

声明:仅供为学习材料,不允许用作商业用途;

一,功能:

 针对某网站对企业自动刷点赞;

 网站:

二,步骤:

1,获取代理ip(代理ip地址:);

2,模拟浏览器打开点赞页面;

3,模拟点赞事件,并传递参数;

 参数获取:根据浏览器的开发者工具,跟踪点赞事件;对应的“Network”可以看到相关的表头信息,其中的From Data就是参数信息;

三、代码:

# python3# 功能:对https://best.zhaopin.com/中的某企业刷点赞import reimport randomimport sysimport timeimport datetimeimport threadingfrom random import choiceimport requestsimport bs4# 设置user-agent列表,每次请求时,可在此列表中随机挑选一个user-agnetuser_agent = [    "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:17.0; Baiduspider-ads) Gecko/17.0 Firefox/17.0",    "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9b4) Gecko/2008030317 Firefox/3.0b4",    "Mozilla/5.0 (Windows; U; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; BIDUBrowser 7.6)",    "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko",    "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0",    "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.99 Safari/537.36",    "Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; Touch; LCJB; rv:11.0) like Gecko",    ]    # 国内高匿代理IP,返回当前页的所有ipdef get_ip_list():    #获取代理IP(取当前页的ip列表,每页100条ip)    url = "http://www.xicidaili.com/nn"    headers = { "Accept":"text/html,application/xhtml+xml,application/xml;",                "Accept-Encoding":"gzip, deflate, sdch",                "Accept-Language":"zh-CN,zh;q=0.8,en;q=0.6",                "Referer":"http://www.xicidaili.com",                "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36"                }    r = requests.get(url,headers=headers)    soup = bs4.BeautifulSoup(r.text, 'html.parser')    data = soup.table.find_all("td")    # 匹配规则需要用浏览器的开发者工具进行查看    # 匹配IP:61.135.217.7    ip_compile= re.compile(r'(\d+\.\d+\.\d+\.\d+)')    # 匹配端口:80    port_compile = re.compile(r'(\d+)')       # 获取所有IP,返回的是数组[]    ip = re.findall(ip_compile,str(data))         # 获取所有端口:返回的是数组[]      port = re.findall(port_compile,str(data))       # 组合IP+端口,如:61.135.217.7:80    return [":".join(i) for i in zip(ip,port)]  # 打开页面。执行点赞行为def do_dz(code=0,ips=[]):    #点赞,如果代理IP不可用造成点赞失败,则会自动换一个代理IP后继续点赞    try:        # 随机选取一个ip        ip = choice(ips)    except:        return False    else:        proxies = {            "http":ip,        }        headers_ = {            "Accept":"*/*",            "Accept-Encoding":"gzip, deflate, sdch",            "Accept-Language":"zh-CN,zh;q=0.8,en;q=0.6",            "Referer":"https://best.zhaopin.com/",            "User-Agent":choice(user_agent),        }        # 用浏览器的开发者工具跟踪点赞事件传输的参数值        datas = {
'bestid': 6030, 'source': 'best'} try: # 点赞网址 url_dz = "https://best.zhaopin.com/API/Vote.ashx" # 执行点赞行为(发送请求) r_dz = requests.post(url_dz,headers=headers_,data=datas,proxies=proxies) except requests.exceptions.ConnectionError: print("Connection Error") 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,r_dz.text,len(ips)))if __name__ == '__main__': ips = [] # python3把xrange()与rang()e整合为一个range() for i in range(5000): # 每隔1000次重新获取一次最新的代理IP if i % 1000 == 0: ips.extend(get_ip_list()) # 启用线程,隔2秒产生一个线程 t1 = threading.Thread(target=do_dz,args=(i,ips)) t1.start() # time.sleep的最小单位是毫秒 time.sleep(2)

 

作者:整合侠

链接:
来源:博客园
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

转载于:https://www.cnblogs.com/lizm166/p/8242193.html

你可能感兴趣的文章
word发表博客的方法
查看>>
Programming Erlang_CHAPTER2_Basic Erlang 学习笔记(2)。
查看>>
Linux基础
查看>>
2019北航软工暑期班作业-预培训个人项目(地铁线路规划)
查看>>
【模板】高精度
查看>>
弱弱的玩下Javascript
查看>>
二叉树相关操作
查看>>
在webstorm开发微信小程序之使用阿里自定义字体图标
查看>>
序列化模块/模块/包
查看>>
eclipse maven plugin 插件 安装 和 配置
查看>>
收集一些复杂有用的正则表达式
查看>>
子数组求和之大数溢出
查看>>
浏览器预览office文件(word,Excel,等)
查看>>
MySQL工具汇总
查看>>
cookie
查看>>
如何使用Eclipse编译C,C++,JAVA程序
查看>>
手把手教如何搭建node+egg项目 引入Sequelize
查看>>
Xcode 4 with External Static Library for iPhone Development
查看>>
linux——常用命令清单
查看>>
JS 20180415作业
查看>>