from selenium import webdriver
from selenium.webdriver.firefox.options import Options
options = Options()
options.add_argument('-profile')
options.add_argument('D:/путь_куда_сохранить/профиль')
driver = webdriver.Firefox(options=options,
executable_path='geckodriver.exe',
service_args=['--marionette-port', '2828'])
process_1
никак не пересекаются с переменными из process_2
. Что-бы шарить данные между процессами нужно использовать Manager.from multiprocessing import Pool, Manager
def rotator(data_list):
data = data_list.pop(0)
data_list.append(data)
return data
def print_data(data_list):
data = rotator(data_list)
print(data)
if __name__ == "__main__":
manager = Manager()
data_list = manager.list()
for x in range(5):
data_list.append(x)
with Pool(4) as pool:
for _ in range(10):
pool.apply_async(print_data, [data_list])
pool.close()
pool.join()
0
1
2
3
4
0
1
2
3
4
4
2
0
1
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
images = driver.find_elements_by_xpath('.//img[contains(@class, "image")][@srcset]')
driver.get(url)
time.sleep(15)
driver.get()
не сдвинется, пока страница не будет загружена, так что вам не нужно ничего ждать. А если есть элементы, которые грузятся уже после того, как основная страница загружена, то нужно использовать ожидания. python/Lib
и открыть файл datetime.py
< именно его вы и импортируете. А в нём самом просто вызываемые методы. Да, там есть класс datetime
, но тут действует правило:The naming convention for functions may be used instead in cases where the interface is documented and used primarily as a callable.
>>> import pandas
>>> df = [{'name': 'Ivanov I', 'age': '136', 'iq': 0}]
>>> df = pandas.DataFrame(df)
>>> df
name age iq
0 Ivanov I 136 0
>>> ndf = pandas.DataFrame(df.name.str.split().tolist(), columns=['p', 'n'])
>>> ndf
p n
0 Ivanov I
>>> ndf.p = ndf.p.str[0]
>>> ndf
p n
0 I I
1 A A
2 N N
>>> res = pandas.concat([df, ndf], sort=False, axis=1)
>>> res
name age iq p n
0 Ivanov I 136 0 I I
>>> res = res[['name', 'p', 'n', 'age', 'iq']]
>>> res
name p n age iq
0 Ivanov I I I 136 0
if
if response != 'МАТЕМАТИКА' or 'РУССКИЙ ЯЗЫК':
1. if response != 'МАТЕМАТИКА'
2. if 'РУССКИЙ ЯЗЫК'
>>> if 'РУССКИЙ ЯЗЫК':
... True
...
True
or
, так что у вас условия будет выполняться если response != 'МАТЕМАТИКА'
ИЛИ response != 'РУССКИЙ ЯЗЫК'
, а т.к. 'МАТЕМАТИКА' != 'РУССКИЙ ЯЗЫК'
и наоборот, то проверка будет срабатывать в обеих случаях.if response != 'МАТЕМАТИКА' and response != 'РУССКИЙ ЯЗЫК':
...
def get_range(n):
if n > 0:
result = []
counter = 0
while counter < n:
result.append(counter)
counter += 1
return result
else:
return []
for
, а нужно while
. Про циклы можете тут почитать.return
, а не print
. О том как устроены функции тут."[ ]"
- это строка, а не пустой список. О типах данных тут.for f in foo:
f = 'bla-bla-bla'
f
- это всего лишь переменная, которая ссылается на элемент итерируемого объекта. Изменяя значение f
ты лишь меняешь на какой элемент она будет ссылаться, а не сам элемент итерируемого объекта.>>> foo = [1,2,3,4,5,6]
>>> for key, value in enumerate(foo):
... foo[key] = value * value
...
>>> foo
[1, 4, 9, 16, 25, 36]
Если я правильно делаю
print(some_values[-1])
print("Введіть відповідне число до типу ліцензії: ")
x = 0
while x != '':
x = input("1- CC-BY, 2-CC-NC, 3- CC-ND, 4- CC-SA\n")
if x == "1":
print('Ця ліцензія дозволяє іншим розповсюджувати, редагувати ваш твір,\n вносити в нього зміни, і брати його за основу для своїх творів,\n навіть для використання з комерційною метою,\n за умови зазначення вашого авторства.\n Це ліцензія з найширшим колом дозволеного з пропонованих ліцензій.\n Вона рекомендована для максимального розповсюдження і використання ліцензованих матеріалів.\n')
elif x == '2' :
print('Ця ліцензія дозволяє іншим редагувати ваш твір, змінювати його і брати\n його за основу для своїх творів з некомерційною метою і хоча\n похідні твори повинні бути некомерційними і \nви повинні бути згадані в них як автор\n оригінального твору, автори похідних творів не зобов\'язані ліцензувати\n свої твори на тих самих умовах, що й ваш твір.')
elif x == '3':
print('автор дозволяє поширювати, копіювати, передавати свій твір, навіть з\n омерційною метою, але автор не дозволяє змінювати твір також\n потрібно залишати посилання на автора ')
elif x == '4':
print('автор дозволяє поширювати та змінювати твір , умови такі: слід зберігати\n посилання на попередніх авторів, змінений наступним співавтором\n твір має поширюватися на умовах цієї ж ліцензії ')
else:
print('Error!!!\nPress Enter to exit or choice right option\n ')