Добавлен сбор весов в словарь из файла и заполнение формы на его основе

This commit is contained in:
2020-04-22 00:34:15 +03:00
parent 26fb56c669
commit b25e0595d2
2 changed files with 57 additions and 5 deletions

View File

@@ -8,8 +8,8 @@ from os import path
from bs4 import BeautifulSoup
from datetime import datetime
global driver, banList
global banList
banList = []
if path.exists('./ban_list.txt'):
f = open('./ban_list.txt')
@@ -17,6 +17,24 @@ if path.exists('./ban_list.txt'):
banList.append(line.lower())
f.close()
professionsList = []
if path.exists('./professions_list.txt'):
f = open('./professions_list.txt')
for line in f.readlines():
banList.append(line.lower())
f.close()
weightsList = {}
if path.exists('./weights_list.txt'):
f = open('./weights_list.txt')
for line in f.readlines():
question = line.split(':')[0]
if question[-1:] == ' ':
question = question[:-1]
weights = line.split(':')[1].split()
weightsList[question] = weights
f.close()
def button_by_text(text): # получение кнопки по тексту на ней
@@ -75,7 +93,7 @@ def not_in_ban_list(word):
def profile_maker():
global areas_of_activity
global driver
forms_list = driver.find_elements_by_class_name(
'freebirdFormviewerViewItemsItemItem') # получение форм со страницы
@@ -129,6 +147,7 @@ def profile_maker():
field = form.find_elements_by_class_name('quantumWizTextinputPapertextareaInput')[
0] # получение полей для ввода с формы
field.click()
# field.send_keys(random.choice(professionsList))
field.send_keys(get_profession())
elif header == 'Укажите Ваш стаж работы в текущей должности (полных лет)':
@@ -137,8 +156,28 @@ def profile_maker():
buttons_list[random.randint(0, len(buttons_list) - 1)].click()
def smart_buildozer():
global driver
forms_list = driver.find_elements_by_class_name(
'freebirdFormviewerViewItemsItemItem') # получение форм со страницы
for form in forms_list:
header = form.find_element_by_class_name(
'freebirdFormviewerViewItemsItemItemHeader').text # получение заголовка формы
if header[-1:] == '*':
header = header[:-2]
buttons_list = form.find_elements_by_class_name(
'appsMaterialWizToggleRadiogroupRadioButtonContainer') # получение кнопок-радио с формы
button = random.choices(buttons_list, weightsList[header], k=1)[0]
button.click()
def bulldozer():
global driver
forms_list = driver.find_elements_by_class_name(
'freebirdFormviewerViewItemsItemItem') # получение форм со страницы
for form in forms_list:
@@ -152,16 +191,21 @@ def bulldozer():
buttons_list[random.randint(0, len(buttons_list) - 1)].click()
if __name__ == '__main__':
def main():
global driver
url = 'https://docs.google.com/forms/d/1f716YOLUrKhtjTlR4hYiEWkgwjqylR5fCPxWsHQKJqY'
# url = int(input('Введите ссылку на форму: '))
respondents = int(input('Введите желаемое число респондентов: '))
respondents = int(input(datetime.now().strftime(
'[%X] ') + 'Введите желаемое число респондентов: '))
options = webdriver.firefox.options.Options()
options.headless = True
driver = webdriver.Firefox(options=options)
print(datetime.now().strftime('[%X] ') + 'Начато')
with progressbar.ProgressBar(max_value=respondents) as bar:
for i in range(respondents):
bar.update(i)
@@ -179,3 +223,10 @@ if __name__ == '__main__':
break
driver.close()
print(datetime.now().strftime('[%X] ') + 'Завершено')
if __name__ == '__main__':
main()