Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from bs4 import BeautifulSoup
- import pymysql.cursors
- import datetime
- import requests
- import time
- class GetUsers:
- def __init__(self, tags):
- self.tags = tags
- def __dataHalaman(self, tag):
- self.tag = tag
- page = requests.get('http://picbear.com/tag/' + self.tag, verify=False)
- time.sleep(1)
- soup = BeautifulSoup(page.content, 'html.parser')
- time.sleep(1)
- return soup
- def __writeLog(self, tag, count):
- self.tag = tag
- self.count = count
- log = open('log.txt', 'a')
- log.write('TagName: ' + self.tag + '; UserCount: ' + str(self.count) + '; Time: ' + str(datetime.datetime.now()) + "\n")
- log.close()
- # Remove duplicates from this list.
- def __removeDuplicates(self, arrays):
- self.arrays = arrays
- output = []
- seen = set()
- for value in self.arrays:
- # If value has not been encountered yet,
- # ... add it to both list and set.
- if value not in seen:
- output.append(value)
- seen.add(value)
- return output
- def getThem(self):
- usernames = []
- for number, tag in enumerate(self.tags, start=1):
- try:
- count = 0
- soup = self.__dataHalaman(tag)
- users = soup.findAll('a',{'class':'grid-media-owner'})
- for user in users:
- count += 1
- user = user['href'].rsplit('/')
- usernames.insert(len(usernames), user[-1])
- except Exception as e:
- print(e)
- finally:
- time.sleep(1)
- self.__writeLog(tag, count)
- usernames = self.__removeDuplicates(usernames)
- return usernames
- class SaveUsers:
- def __init__(self, users):
- self.users = users
- def __myConnect(self, host, user, password, dbname):
- self.host = host
- self.user = user
- self.password = password
- self.dbname =dbname
- return pymysql.connect(host = self.host, user = self.user, password = self.password, db = self.dbname, charset = 'utf8mb4', cursorclass = pymysql.cursors.DictCursor)
- def save(self) :
- connection = self.__myConnect('localhost', 'root', '', 'igusers')
- for user in self.users:
- try:
- with connection.cursor() as cursor:
- # Create a new record
- sql = "INSERT INTO users (user) VALUES (%s)"
- cursor.execute(sql, (user))
- # connection is not autocommit by default. So you must commit to save
- # your changes.
- connection.commit()
- except Exception as e:
- print(e)
- connection.close()
- def checkTime():
- jam = datetime.datetime.now()
- return jam
- def eksekusi(tags, loop_count):
- for x in range(0, n):
- jam = checkTime()
- if (6 < int(jam.hour) < 23):
- times = 0
- else:
- times = 3
- users = GetUsers(tags)
- time.sleep(1)
- save = SaveUsers(users.getThem())
- save.save()
- time.sleep(60 * times)
- n = 10000
- tags = [
- 'tasimport',
- 'taswanita',
- 'jualtas',
- 'tasmurah',
- 'taskw',
- 'tasbatam',
- 'tastangan',
- 'tasfashion'
- ]
- eksekusi(tags,n)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement