Advertisement
Guest User

Untitled

a guest
Apr 13th, 2016
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.35 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import random
  5. import time
  6. import urllib2
  7. import random
  8. import sys
  9. import os
  10. import spynner
  11. from subprocess import Popen, PIPE
  12. from multiprocessing.dummy import Pool as ThreadPool
  13.  
  14. path = os.path.realpath(os.path.dirname(sys.argv[0]))
  15. useragent = ["Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko", "Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko"]
  16.  
  17. class wiper():
  18. def __init__(self, dispute, bmplimit, proxy,speed):
  19. #определяем чой-то такое
  20. if '2ch' in dispute:
  21. textform1 = 'span[id=TopNormalReplyLabel]'
  22. textform2 = 'textarea[name=comment]'
  23. textform3 = 'input[name=submit]'
  24. bmptext = '<span class="posttime">'
  25. elif 'syn-ch' in dispute:
  26. textform1 = 'div[id=markup]' #не нужно, но придется
  27. textform2 = 'textarea[name=body]'
  28. textform3 = 'input[name=post]'
  29. bmptext = '<time datetime="'
  30. elif 'dobrochan' in dispute:
  31. textform1 = 'span[id=postFormDiv]'
  32. textform2 = 'textarea[name=message]'
  33. textform3 = 'input[name=new_post]'
  34. bmptext = '<span class="postername">'
  35. else:
  36. print ('Неудача! Вы запостили неправильную ссылку.')
  37.  
  38. print 'Начинаем спамить. Ожидайте, пожалуйста...'
  39.  
  40. bamp = self.wiper(dispute, textform1, textform2, textform3, bmptext, bmplimit, proxy)
  41. while bamp:
  42. if proxy:
  43. time.sleep(int(speed))
  44. print('Всё еще не бамплимит. Спамируем дальше...')
  45. else:
  46. randomtime = random.randint(10,15)
  47. time.sleep(randomtime)
  48. print ('Всё еще не бамплимит, спам продолжится через '+str(randomtime)+'с.')
  49. bamp = self.wiper(dispute, textform1, textform2, textform3, bmptext, bmplimit, proxy)
  50. print 'Бамплимит наступил. Поздравляем, спамер!'
  51.  
  52. def images_filter(self, operation, url):
  53. return os.path.splitext(url)[1] not in (".jpg", ".gif", '.webm', '.mp3', '.ttf', '.flv', '.swf', 'css', 'png')
  54.  
  55. def wiper(self, dispute, t1, t2, t3, bmptext, bmplimit, proxy):
  56. try:
  57. words = u'Всё еще тестирю доброчан...'
  58. rua = useragent[random.randint(0, (int(len(useragent))-1))]
  59. browser = spynner.Browser(debug_level=spynner.ERROR,user_agent = rua)
  60. if proxy:
  61. browser.set_proxy(proxy)
  62. browser.wait(1)
  63. browser.set_url_filter(self.images_filter)
  64. #browser.create_webview()
  65. #browser.webview.show()
  66. browser.load(dispute, load_timeout=60)
  67. browser.wait(1)
  68. global html
  69. html = browser.html
  70. browser.wait(1)
  71. browser.wk_click(t1)
  72. browser.wait(1)
  73. browser.wk_fill(t2, words)
  74. #browser.wait(5)
  75. #browser.wk_click(t3)
  76. browser.wait(2)
  77. browser.close()
  78. #проверям бамплимит
  79. lastpost = html.split(bmptext)
  80. lastpostnum = int(len(lastpost))-1
  81. print 'Постов в треде:', lastpostnum
  82. if bmplimit > lastpostnum:
  83. return True
  84. elif bmplimit <= lastpostnum:
  85. return False
  86. except Exception, e:
  87. print 'Ошибочка', e
  88. return e
  89.  
  90. def proxystart(proxy,speed):
  91. wiper(dispute,bmplimit,proxy,speed)
  92.  
  93. def onestart():
  94. wiper(dispute,bmplimit,False,False)
  95.  
  96. def proxyfilestart(speed):
  97. try:
  98. with open(path+'/proxy.txt', 'rb') as proxyfile:
  99. proxyrange = proxyfile.read().split('\n')
  100. for proxy in proxyrange:
  101. proxystart(proxy,speed)
  102. except Exception:
  103. with open(path+'/proxy.txt', 'wb') as proxyfile:
  104. print 'Проксифайл создан. Наполните его.'
  105. time.sleep(3)
  106. exit()
  107.  
  108. if __name__ == '__main__':
  109.  
  110. #print 'Введите ссылку на тренд:'
  111. #dispute = raw_input()
  112. dispute = 'http://dobrochan.com/mad/res/70972.xhtml'
  113.  
  114. #print 'Введите бамплимит:'
  115. #bmplimit= raw_input()
  116. bmplimit = 500
  117.  
  118. #print 'Использовать прокси? Y/N'
  119. #proxyyn = raw_input()
  120. proxyyn = 'n'
  121.  
  122. tree = os.walk(path)
  123. print tree
  124.  
  125. if str.upper(proxyyn) == 'Y':
  126. print 'Укожите скорость постинга в секундах:'
  127. speed = raw_input()
  128. proxyfilestart(speed)
  129. elif str.upper(proxyyn) == 'N':
  130. onestart()
  131. else:
  132. print 'Нипонел, попробуйте еще раз'
  133. time.sleep(3)
  134. exit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement