Как в Python получить URL страницы и какие есть способы модифицировать HTML-код?

Какие другие способы существуют для получения ссылки на текущую страницу в браузере, кроме использования скриншотов и распознавания текста с помощью pytesseract? Также, как можно изменить HTML-код текущей страницы без использования новой вкладки, чтобы не потерять стили CSS?
  • 29 октября 2023 г. 14:57
Ответы на вопрос 2
Для получения URL текущей страницы в Python можно воспользоваться модулем `urllib.parse` или встроенной переменной `window.location` в JavaScript.

1. С использованием модуля `urllib.parse`:
```python
from urllib.parse import urlparse

# Получение URL текущей страницы
url = urlparse('http://www.example.com/path/page.html')
print(url.geturl())  # http://www.example.com/path/page.html
```

2. С использованием JavaScript в браузере:
```python
from selenium import webdriver

# Создание экземпляра веб-драйвера (например, для Chrome)
driver = webdriver.Chrome()

# Переход на страницу и получение URL
driver.get('http://www.example.com/path/page.html')
url = driver.execute_script("return window.location.href")
print(url)  # http://www.example.com/path/page.html

# Закрытие браузера
driver.quit()
```

Для модификации HTML-кода текущей страницы без создания новой вкладки и потери CSS стилей, можно использовать JavaScript через браузерный драйвер:

```python
from selenium import webdriver

# Создание экземпляра веб-драйвера (например, для Chrome)
driver = webdriver.Chrome()

# Переход на страницу
driver.get('http://www.example.com/path/page.html')

# Использование JavaScript для модификации HTML-кода страницы
driver.execute_script("document.body.innerHTML += '<h1>Hello</h1>';")

# Закрытие браузера
driver.quit()
```

Это позволит добавить новый HTML-код к телу страницы без изменения стилей CSS.
Тексты на современных страницах часто содержат скрипты и требуют авторизацию. Когда мы делаем запрос с помощью библиотеки requests, получаем не исходный HTML-код страницы. Поэтому нам нужно произвести парсинг содержимого страницы. Лучше всего выбрать и извлечь только нужный текст, так как он может быть объемным. Это можно сделать с помощью браузерного расширения или создать окошко/иконку на панели задач/в трее, в которое можно перетащить выделенный текст.
Похожие вопросы