Size: a a a

2021 December 11

MB

Maria Baboglo in Python
import re
import time

from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from datetime import datetime


# функция ожидания елементов
def wait_element(xpath, driver):
   element = WebDriverWait(driver, 10).until(
       EC.presence_of_element_located(
           (By.XPATH, xpath)
       )
   )
   return element


def test_creating_vv():
   driver = webdriver.Chrome()
   driver.maximize_window()
   driver.get("ссылка на сайт")
# Login
   input_login = wait_element(xpath="//*[@id=\"login\"]", driver=driver)
   input_password = wait_element(xpath="//*[@id=\"password\"]", driver=driver)
   login_button = wait_element(xpath="//*[@id=\"root\"]/div/div/div[2]/div/form/button", driver=driver)

   input_login.send_keys("admin")
   input_password.send_keys("test123")
   login_button.click()
# SMS code
   input_code = wait_element(xpath="//*[@id=\"code\"]", driver=driver)
   send_code_button = wait_element(xpath="//*[@id=\"root\"]/div/div/div[2]/div/form/button", driver=driver)

   input_code.send_keys(400)
   send_code_button.click()
# Homepage
   create_user_button = wait_element(xpath="//*[@id=\"root\"]/div/header/div/div[2]/div/div[1]/button", driver=driver)
   create_user_button.click()

   create_vv_button = wait_element(xpath="//*[@id=\"simple-menu\"]/div[3]/ul/li[1]", driver=driver)
   create_vv_button.click()
# Creation VV page
   input_name = wait_element(xpath="//*[@id=\"name\"]", driver=driver)
   upload_logo = wait_element(xpath="//*[@id=\"logo\"]", driver=driver)
   input_law_address = wait_element(xpath="//*[@id=\"law_address\"]", driver=driver)
   input_address = wait_element(xpath="//*[@id=\"address\"]", driver=driver)
   input_phone0 = wait_element(xpath="//*[@id=\"phone_0\"]", driver=driver)
   input_director = wait_element(xpath="//*[@id=\"director\"]", driver=driver)
   input_bank = wait_element(xpath="//*[@id=\"bank\"]", driver=driver)
   input_usreou = wait_element(xpath="//*[@id=\"usreou\"]", driver=driver)
   input_iban = wait_element(xpath="//*[@id=\"iban\"]", driver=driver)
   input_contract_date = wait_element(xpath="//*[@id=\"scrollable-auto-tabpanel-general\"]/div/form/div"
                                            "[3]/div[2]/div/div[6]/div/div/div/button", driver=driver)
   save_button = wait_element(xpath="//*[@id=\"scrollable-auto-tabpanel-general\"]/div/form/div[5]"
                                    "/div[2]/div/div[2]/button", driver=driver)
   user_list_page = wait_element(xpath="//*[@id=\"root\"]/div/nav/div[2]/div/div/div/div[1]/div"
                                       "[2]/a[1]", driver=driver)

   generated_date = str(datetime.now())  # Генератор имени компании
   generated_date = re.sub('[-: .]', '', generated_date)
   name_vv = "AT" + generated_date + "ВВ"

   input_name.send_keys(name_vv)
   upload_logo.send_keys("C:\\Users\\MBABOGLO\\PycharmProjects\\parsingTest\\materials\\logo.png")
   input_law_address.send_keys("01042, Украина, г. Киев, ул. Чигорина д. 49, оф.")
   input_address.send_keys("01042, Украина, г. Киев, ул. Чигорина д. 49, оф.")
   input_phone0.send_keys("999999999")
   input_director.send_keys("Олександр Петрович")
   input_bank.send_keys("МоноПриват")
   input_usreou.send_keys(12345678)
   input_iban.send_keys("UA213223130000026007233566001")
   input_contract_date.click()

   chose_contract_date = wait_element(xpath="/html/body/div[4]/div[3]/div/div[2]/div[2]/div/div[5]"
                                            "/div[6]/button", driver=driver)
   chose_contract_date.click()
   save_button.click()

   user_list_page.click()  # go to user page

   time.sleep(5)
   return name_vv


def _test_activate_vv():
   driver = webdriver.Chrome()
   driver.maximize_window()
   driver.get("ссылка на сайт")

   driver.find_element(By.PARTIAL_LINK_TEXT, test_creating_vv())

if name == "main":
   test_creating_vv()
   _test_activate_vv()
источник

MB

Maria Baboglo in Python
вторая функция не до конца пока прописана, но суть вроде передана
источник

.

. in Python
А такой вопрос
А зачем ты вызываешь функцию   test_creating_vv()
Потом   _test_activate_vv()
потом опять в функцие _test_activate_vv() вызываешь test_creating_vv(
источник

Д

Даниил in Python
Просто табы поставь
источник

MB

Maria Baboglo in Python
это я попыталась применить предложенное решение, просто немного укоротила, если не укорачивать, то получается примерно так
def _test_activate_vv():
   driver = webdriver.Chrome()
   driver.maximize_window()
   driver.get("ссылка на сайт")

   name_vv = test_creating_vv()

   driver.find_element(By.PARTIAL_LINK_TEXT, name_vv)
вызываю сначала первую функцию а потом вторую, потому что важна последовательность тест кейсов
источник

.

. in Python
Это понятно
Просто в точке входа в функцию просто удали   test_creating_vv()
Это там где if name == "main"
источник

MB

Maria Baboglo in Python
смотрела на этот вариант, но разве такой двухэтажный кейс - хорошая практика?
источник

༼ℬξ︎Ɩ𝔐ℰ𝓓𝕴𝔎𝒾𝓎༘☽︎... in Python
Спасибооо
источник

.

. in Python
Нет
Ещё можно в функцие def test_creating_vv():
удалить
driver = webdriver.Chrome()
   driver.maximize_window()
   driver.get("ссылка на сайт")

Не совсем понял зачем дважды на сайт заходить
источник

MB

Maria Baboglo in Python
согласна)
источник

MB

Maria Baboglo in Python
Спасибо
источник
2021 December 12

ДВ

Дима Варич in Python
а  что означает на с-языке вот это:
"к++"
источник

ДВ

Дима Варич in Python
как в пайтон перевести?
источник

EE

Edemovich Edem in Python
Привет ребята! Я работаю над этой проблемой уже пол дня. Я пытаюсь получить все ссылки из этого источника: https://kompromat.wiki/%D0%94%D0%BE%D1%81%D1%8C%D0%B5_(%D0%90). В частности, из тега div с class='dossier'. Я использую bs4 запросы lxml. Нахожу блок с этим тегом. Использую цикл, но вместо всех ссылок выдает только одну. Я предполагаю, что я не правильно использую пути до ссылок, но пока не могу понять где ошибка
источник

EE

Edemovich Edem in Python
import requests
from bs4 import BeautifulSoup

def get_data(url):
  headers = {"user-agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Mobile Safari/537.36"}

with open("projects.html", encoding="utf-8") as file:
     src = file.read()

  soup = BeautifulSoup(src, "lxml")
  articles = soup.find_all("div", class_='dossier')
  #print(articles)


  for article in articles:
     project_url = "https://kompromat.wiki" + article.find("li", {"data-sortkey": "А"}).find("a").get("href")
     print(project_url)
 
     

get_data("https://kompromat.wiki/%D0%94%D0%BE%D1%81%D1%8C%D0%B5_(%D0%90)")
источник

!

!@! in Python
k=k+1
Более краткая форма: k+=1
источник

ДВ

Дима Варич in Python
спасибо
источник

楽園松本 in Python
источник

楽園松本 in Python
Не осилил
источник

M

Mark in Python
всем привет, у меня такой вопроса
я учусь парсить ,
вот написал свой первый парсер ,
вывел результат в Shell,  все работает, но оно только в консоли,
как мне вывести результат парсера на html страницу и стилизировать его?
Спасибо)
источник