- !/usr/bin/env python
import time
import sys
import os
import requests
import re
import random
import getpass
-
- CONFIG VARIABLES : YOU CAN EDIT THESE VARIABLES TO CHANGE TIMER VALUES ##
-
MIN_DELAY_BETWEEN_PROFILE_VIEWS = 1
MAX_DELAY_BETWEEN_PROFILE_VIEWS = 5
DELAY_BETWEEN_RUNS = 30
sex = # Possible values: 'male', 'female', or empty for both
cont = '' # Possible values: 'AF' (Africa) 'AS' (Asia), 'EU' (Europe)
- 'NA' (North America), 'OC' (Oceania), 'SA' (South America)
age1 = 28 # minimum age
age2 = 38 # maximum age
- We keep already visited profile in a file to avoid visiting
- a profile multiple times on consecutive execution of this script
- YOU CAN DELETE THIS FILE IF YOU WANT TO VISIT EVERYBODY ONCE AGAIN
visitedUsersFilename = "users_visited.txt"
- Set this variable to True to output debug log,
- or False for more concise output
DEBUG = False
-
- END OF CONFIG VARIABLES
-
sessioncount = 0
run_number = 1
f = open(visitedUsersFilename, 'a+')
processedUsers = [line.strip() for line in f]
print "Already processed " + str(len(processedUsers)) + " users."
s = requests.Session()
login = raw_input('Username (mail): ')
password = getpass.getpass('Password: ')
payload = {'action': 'login',
'login': login,
'auto_login' : '0',
'password': password}
print "Logging in..."
s.get("http://www.interpals.net/")
r = s.post("http://www.interpals.net/login.php", data=payload)
print "Logged in: Starting the dance \o/"
time.sleep(2)
- print r.headers
- print r.text
while True:
runcount = 0
if DEBUG:
print "Fetching online users page..."
r = s.get("http://www.interpals.net/online.php?sex=%s&
cont=%s&age1=%d&age2=%d"
% (sex, cont, age1, age2))
data = r.text
usernames = re.findall(r'<div class=\'online_prof\'><a href=\'([a-zA-Z0-9\-_]+)\'', data, re.M)
for username in usernames:
if username not in processedUsers:
if DEBUG:
print "Visiting profile of " + username + " (" + str(sessioncount) + ")"
runcount += 1
sessioncount += 1
r = s.get("http://www.interpals.net/" + username)
waitTime = random.randrange(MIN_DELAY_BETWEEN_PROFILE_VIEWS*1
0,
MAX_DELAY_BETWEEN_PROFILE_VIEWS*10) / float(10)
if DEBUG:
print "Waiting " + str(waitTime) + "s"
else:
os.system('cls' if os.name=='nt' else 'clear')
print ('\rRun %d - Fetched %d users (%d total)' % (run_number, runcount, sessioncount))
time.sleep(waitTime)
processedUsers.append(username)
f.write(username + "\n")
elif DEBUG:
print "Already visited " + username
run_number += 1
if (runcount < 20):
print ('[-] Waiting (%d)s before next run (fetched %d users this run, %d total)\n' % (DELAY_BETWEEN_RUNS * 4, runcount, sessioncount))
time.sleep(DELAY_BETWEEN_RUNS * 4)
else:
print ('[+] Waiting (%d)s before next run (fetched %d users this run, %d total)\n' % (DELAY_BETWEEN_RUNS, runcount, sessioncount))
time.sleep(DELAY_BETWEEN_RUNS)