Saya pikir banyak orang suka berkenalan di sosial. jaringan dan menggunakan aplikasi (misalnya Tinder),tetapi seringkali dibutuhkan banyak waktu untuk menyukai dan mengirimpesan pertama . Saya percaya bahwa ini adalah tindakan monoton yang hanya mengusirkomunikasi dan kencan. Jika Anda seorang programmer, mengapa menjadi seperti orang lain, mari kitamengotomatiskan proses tindakan monoton dengan saya dan meninggalkan perhatian kita hanyauntuk komunikasi yang menyenangkan, tetapi tentang segala sesuatu dalam urutan.Latihan
Pada artikel ini, saya akan menggunakan browser Chrome .
- Buat folder dengan proyek bot_tinder .
- bot_tinder chromedriver_for_win chromedriver_for_mac, chromedriver_for_lin (.. 3 Windows, macOS, Linux).
- webdriver ( Chrome, Firefox ), .
- chromedriver_for_win, chromedriver_for_mac, chromedriver_for_lin.
, , .. .
- Di folder bot_tinder, buat file bernama log.txt (kami menuliskan nomor telepon yang akan digunakan untuk Tinder). Format tanpa angka delapan: 9851234567
- Di folder bot_tinder, buat file tinder.py , function.py .
Akibatnya, Anda harus memiliki yang berikut ini:
Setiap folder harus berisi file webdriver yang diunduh sebelumnya.Jika Anda menerapkannya hanya untuk OS Anda, maka file webdriver harus terletak di hanya satu folder dengan nama OS Anda "chromedriver_for_your OS " .
Penerapan
Di file tinder.py, impor perpustakaan:
from selenium import webdriver
Di file function.py , impor pustaka:from selenium.common.exceptions import NoSuchElementException, ElementNotInteractableException
from sys import platform
from time import sleep
import datetime
Selanjutnya, dalam file function.py , kita membuat variabel yang kita perlukan nanti:error = ''
warning = ''
ok = ''
oc = ''
like = ''
all_sleep = 3
like_sleep = 2
Ikon-ikon itu dihapus oleh penerjemah Habr, tetapi harus seperti ini:
Anda dapat menyalin ikon dari situs atau menggunakan perpustakaan emoji .Variabel all_sleep , like_sleep menunjukkan waktu tunda dalam detik.Setelah kami membuat fungsi di file function.py :
Fungsi pertama akan menentukan tanggal dan waktu:
def get_data_time():
time_now = datetime.datetime.now()
return time_now.strftime("%d-%m-%Y %H:%M")
- Fungsi kedua akan menentukan OS Anda dan mengakses webdriver yang diinginkan :
def get_OC():
"""
Define OS.
:return: OS information and path to chromedriver.exe
"""
if platform == "linux" or platform == "linux2":
time_now = datetime.datetime.now()
information = "[" + get_data_time() + '] {} Linux'.format(oc)
put = "chromedriver_for_lin/** webdriver**"
return information, put
elif platform == "darwin":
time_now = datetime.datetime.now()
information = "[" + get_data_time() + '] {} Mac'.format(oc)
put = "chromedriver_for_mac/** webdriver**"
return information, put
elif platform == "win32":
time_now = datetime.datetime.now()
information = "[" + get_data_time() + '] {} Windows'.format(oc)
put = "chromedriver_for_win/chromedriver.exe"
return information, put
Ingatlah untuk menulis path ke webdriver dalam variabel put .
- Fungsi ketiga akan membaca nomor telepon dari file log.txt :
def information_from_txt_files():
"""
Read the .txt files
:return: Information. Login.
"""
information = ''
with open('log.txt', 'r') as file:
log = file.read()
information += "[" + get_data_time() + \
'] {} Tinder: {}'.format(ok, log)
return information, log
- Fungsi keempat akan menutup popup di situs web Tinder:
def close_start_popups(browser):
"""
Close the popup.
:param browser: parameter of the running browser.
:return: information.
"""
sleep(all_sleep)
try:
browser.find_element_by_xpath('//button[@aria-label=""]').click()
return "[" + get_data_time() + "] {} .".format(ok)
except ElementNotInteractableException as err:
return "[" + get_data_time() + '] {} ' + err + ''.format(error)
except NoSuchElementException as err:
return "[" + get_data_time() + '] {} .'.format(error)
- Fungsi kelima akan menekan tombol "Masuk menggunakan nomor telepon" :
def log_in_using_your_phone(browser):
"""
Click the Login button using the phone number.
:param browser: parameter of the running browser.
:return: information
"""
sleep(all_sleep)
try:
browser.find_element_by_xpath('//div[@id="modal-manager"]').find_element_by_xpath('//button[@aria-label=" "]').click()
return "[" + get_data_time() + "] {} .".format(ok)
except ElementNotInteractableException as err:
return "[" + get_data_time() + '] {} ' + err + ''.format(error)
except NoSuchElementException as err:
browser.find_element_by_xpath('//button[text()=" "]').click()
return log_in_using_your_phone(browser)
- Fungsi keenam akan memasukkan nomor telepon:
def input_number_phone(browser, log):
"""
Enter the phone number.
:param browser: parameter of the running browser.
:param log: phone number.
:return: information.
"""
sleep(all_sleep)
try:
browser.find_element_by_name('phone_number').send_keys(log)
return "[" + get_data_time() + '] {} {}'.format(ok, log)
except NoSuchElementException:
return "[" + get_data_time() + '] {} .'.format(error)
- Fungsi ketujuh menekan tombol Lanjutkan :
def go_on(browser):
"""
Click the Continue button.
:param browser: parameter of the running browser.
:return: information
"""
sleep(all_sleep)
try:
browser.find_element_by_xpath('//span[text()=""]').click()
return "[" + get_data_time() + '] {} '.format(ok)
except NoSuchElementException:
return "[" + get_data_time() + '] {} .'.format(error)
- Fungsi kedelapan meminta Anda untuk memasukkan kode yang akan datang ke ponsel Anda:
def code_check():
"""
Entering a code and checking the entered code.
:return: entered code
"""
kod_numbers = input("[" + get_data_time() + "] {} : ".format(warning))
if len(kod_numbers) != 6:
print("[" + get_data_time() + '] {} .'.format(error))
return code_check()
else:
print("[" + get_data_time() + '] {} .'.format(ok))
return kod_numbers
Fungsi ini juga memeriksa jumlah digit yang dimasukkan.
- Fungsi kesembilan memasuki kode:
def input_cod(browser):
"""
Code entry.
:param browser: parameter of the running browser.
:return: information.
"""
try:
kod_numbers = code_check()
kod = browser.find_elements_by_xpath('//input[@type="tel"]')
n = 0
for i in kod:
i.send_keys(kod_numbers[n])
n += 1
return "[" + get_data_time() + '] {} .'.format(ok)
except NoSuchElementException:
return "[" + get_data_time() + '] {} .'.format(error)
- Fungsi kesepuluh memungkinkan definisi geolokasi:
def geolocation_ok(browser):
"""
We allow geolocation.
:param browser: parameter of the running browser.
:return: information.
"""
sleep(all_sleep)
try:
browser_button = browser.find_elements_by_tag_name("button")
button_list = {i.text: i for i in browser_button}
if "" in button_list.keys():
button = [value for key, value in button_list.items() if key == ""]
button[0].click()
return "[" + get_data_time() + '] {} .'.format(ok)
else:
return "[" + get_data_time() + '] {} .'.format(error)
except NoSuchElementException:
return "[" + get_data_time() + '] {} .'.format(error)
- Fungsi kesebelas mematikan peringatan:
def notice_off(browser):
"""
Turn off notifications.
:param browser: parameter of the running browser.
:return: information.
"""
sleep(all_sleep)
try:
browser_button = browser.find_elements_by_tag_name("button")
button_list = {i.text: i for i in browser_button}
if "" in button_list.keys():
button = [value for key, value in button_list.items() if key == ""]
button[0].click()
return "[" + get_data_time() + '] {} .'.format(ok)
else:
return "[" + get_data_time() + '] {} .'.format(error)
except NoSuchElementException:
return "[" + get_data_time() + '] {} .'.format(error)
- Fungsi kedua belas menutup pop-up:
def popup_windows_off(browser):
"""
Close popups.
:param browser: parameter of the running browser
:return: information
"""
sleep(like_sleep)
try:
browser_button = browser.find_elements_by_tag_name("button")
button_list = {i.text: i for i in browser_button}
if "" in button_list.keys():
button = [value for key, value in button_list.items() if key == ""]
button[0].click()
print("[" + get_data_time() + '] {} .'.format(ok))
except NoSuchElementException:
pass
- Fungsi ketiga belas menempatkan Seperti:
def click_like(browser):
"""
Click LIKE.
:param browser: parameter of the running browser
:return: information
"""
sum_like = 0
while True:
try:
popup_windows_off(browser)
browser.find_element_by_xpath('//button[@aria-label=""]').click()
sum_like += 1
print("[" + get_data_time() + '] {} - {}'.format(like, str(sum_like)))
except NoSuchElementException:
print("[" + get_data_time() + '] {} .'.format(error))
Sekarang buka file tinder.py dan daftarkan impor semua fungsi:from function import get_OC, information_from_txt_files, close_start_popups, notice_off, click_like, log_in_using_your_phone, input_number_phone, go_on, input_cod, geolocation_ok
Tentukan OS:
info, put = get_OC()
print(info)
Setel opsi peramban:
chromedriver = put
options = webdriver.ChromeOptions()
options.add_argument('--start-minimize')
browser = webdriver.Chrome(executable_path=chromedriver, chrome_options=options)
Jika Anda bekerja dengan Firefox, bacalah cara menggunakannya menggunakan perpustakaan selenium.webdriver .
Browser terbuka dan menuju ke halaman Tinder:
browser.get('https://tinder.com/app/recs')
Sekarang kita mulai menggunakan fungsi yang disiapkan sebelumnya:
info_txt, log = information_from_txt_files()
print(info_txt)
print(close_start_popups(browser))
print(log_in_using_your_phone(browser))
print(input_number_phone(browser, log))
print(go_on(browser))
print(input_cod(browser))
print(go_on(browser))
print(geolocation_ok(browser))
print(notice_off(browser))
click_like(browser)
Kesimpulan
Pada akhirnya, dapatkan bot yang masuk ke situs web Tinder dan klik Suka.Anda hanya perlu masuk ke aplikasi dalam beberapa jam dan mulai berbicara dengansimpati yang sudah saling menguntungkan .Otomasi adalah upaya pria untuk menyederhanakan pekerjaan sehingga wanita bisa melakukannya.
Pada artikel selanjutnya, kami akan menerapkan kemampuan untuk mengirim pesan untuk suka bersama.