Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2021, 16:28   #1
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,034
По умолчанию Парсить веб страницу

Код:
import webbrowser
url = 'https://sudrf.ru/index.php?id=300'
print(webbrowser.open_new(url))  # => True - откроет веб страницу и напечатает результат
подскажите, пжл
1
как открывать в новом экземпляре Хрома-он у меня по умолчанию, а не в том, что уже открыт
2
после открытия сайта как узнать
на странице веб узнать о всех ссылках, контролах, ввести данные в поля ввода, выбирать чекбоксы, радиокнопки, нажимать кнопки? спс
Ципихович Эндрю вне форума Ответить с цитированием
Старый 20.03.2021, 21:19   #2
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,034
По умолчанию

нечто одна строка 1-я открывает в ишачке 2-я в Хроме, почему, как сделать чтобы обе открыло в Хроме?
Код:
print(webbrowser.open_new('Unifive.ru')) 
print(webbrowser.open_new('https://yandex.ru/search/?lr=10735&text={}'.format('еда')))
спс
Ципихович Эндрю вне форума Ответить с цитированием
Старый 21.03.2021, 09:48   #3
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,034
По умолчанию

Цитата:
Сообщение от Ципихович Эндрю Посмотреть сообщение
нечто одна строка 1-я открывает в ишачке 2-я в Хроме, почему, как сделать чтобы обе открыло в Хроме?
Код:
print(webbrowser.open_new('Unifive. ru'))
print(webbrowser.open_new('https://yandex.ru/search/?lr=10735&text={}'.format('еда')))
тут дошло - не было полного урла
Ципихович Эндрю вне форума Ответить с цитированием
Старый 21.03.2021, 12:28   #4
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,034
По умолчанию

определился
Код:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
# другие argument'ы '--disable-notifications', '--enable-automation', '--window-size=300,300'
chrome_options.add_argument('--start-maximized')
# chromedriver.exe - нужно скачивать отдельно и положить в папку ПК, в любую папку и прописать к ней путь
chromedriver = r'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe'
driver = webdriver.Chrome(executable_path=chromedriver, options=chrome_options)
driver.get(url)
актуально:
после открытия сайта как узнать
на странице веб узнать о всех ссылках, контролах, ввести данные в поля ввода, выбирать чекбоксы, радиокнопки, нажимать кнопки? спс
Ципихович Эндрю вне форума Ответить с цитированием
Старый 22.03.2021, 09:34   #5
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,034
По умолчанию

Код:
continue_link = browser.find_element_by_link_text('Поиск по категориям')
ответ
<selenium.webdriver.remote.webeleme nt.WebElement (session="79e18149ad9414990ae052874 a18c728", element="4915ad1b-f8ed-4fd1-9fb5-fad120ffb7a0")>
подскажите, как её нажать теперь? спс
Ципихович Эндрю вне форума Ответить с цитированием
Старый 30.03.2021, 08:08   #6
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,034
По умолчанию

уже сдвинулся, сейчас проблема
как мне в поле выбора Субъект Российской Федерации ввести
87 = Чукотский автономный округ
и нажать кнопку Найти? спс

Код:
Код:
url0 = r'https://sudrf.ru/index.php?id=300#sp'

import time

from selenium import webdriver

from selenium.webdriver.chrome.options import Options

chrome_options = Options()

# другие argument'ы '--disable-notifications', '--enable-automation', '--window-size=300,300', 'headless' - headless - без головы, чтобы не видеть браузер

chrome_options.add_argument('--start-maximized')

chromedriver = r'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe'

browser = webdriver.Chrome(executable_path=chromedriver, options=chrome_options)

browser.get(url0)

time.sleep(5)  # хардкодное ожидание

link = browser.find_elements_by_link_text('расширенный поиск')  # print(link) print(len(link))

if len(link) == 1: browser.find_element_by_link_text('расширенный поиск').click()  # нажать ссылку

time.sleep(3)  # хардкодное ожидание

from selenium.webdriver.support.ui import Select

# select = Select(browser.find_element_by_id('court_subj')), ниже ещё вариант, поиска через xpath

select = Select(browser.find_element_by_xpath('//*[@id="court_subj"]'))

all_names = [(e.get_property('value'), e.get_attribute('label')) for e in select.options]

for ind, name in all_names:

    # print(ind)

    if ind == '0':

        print(f'{ind} - чтобы не вводить данные в поле ввода субъекта')

    else:

        print(f'{ind} - для ввода субъекта: {name}')



input_court_subj = input(f'''Введите число - обозначение нужного субъекта Российской Федерации

для ввода в поле Субъект Российской Федерации

и нажмите Enter''')



if input_court_subj != '0':

    for ind, name in all_names:

        # print(ind, input_court_subj)

        if ind == input_court_subj:

            print(f'''Введено число: {ind} = {name}''')

            elem_court_subj = browser.find_element_by_xpath('//*[@id="court_subj"]')

            print(elem_court_subj)

            elem_court_subj.send_keys(name)

            break

    else:

        print(f'''Введённое число: {input_court_subj}

отсутствует в обозначениях нужного субъекта Российской Федерации

для ввода в поле Субъект Российской Федерации на сайте: {url0}

что является ошибкой, программа далее не будет продолжаться''')

        exit(0)
Ципихович Эндрю вне форума Ответить с цитированием
Старый 30.03.2021, 08:28   #7
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,034
По умолчанию

для обработки ошибок в коде можно запросить elem_court_subj == interactable-интерактивный, как?
Ципихович Эндрю вне форума Ответить с цитированием
Старый 30.03.2021, 08:52   #8
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,034
По умолчанию

блин туплю - это же поле выбора, как выбирать, а не вводить?
сделал так:
Код:
browser.find_element_by_xpath(f'//*[@id="court_subj_cd"]/option[{ind}]').click()
но получил ошибку
Element is not currently visible and may not be manipulated-Элемент в настоящее время не отображается и не может быть изменен
скажите в чём я ошибаюсь? спс

Последний раз редактировалось Ципихович Эндрю; 30.03.2021 в 09:21.
Ципихович Эндрю вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранить веб-страницу как текст Игорь4 C# (си шарп) 5 13.04.2016 18:25
Парсить страницу. livesport PHP 4 15.12.2012 19:11
Переход на веб страницу был отменён Bright-rider Работа с сетью в Delphi 0 19.10.2010 08:41
C#: нужно проанализировать веб-страницу Manonia Общие вопросы .NET 4 11.05.2010 07:50
как загрузить в окно веб страницу? proglamer Работа с сетью в Delphi 3 07.09.2007 20:10