Как получить данные с локального сайта с помощью Python

Мне нужен совет, как получить данные с веб-сайта. Я совершенно новичок в веб-графике. Особенность в том, что у меня нет доступа к сайту, потому что он работает локально в другой сети. Для разработки у меня есть только веб-сайт в виде HTML-файла. Знай, что моя проблема в том, что я получаю ошибку с моим следующим кодом. Я думаю, что проблема довольно проста, но у меня пока нет идеи.

import requests
import urllib.request
import time
from bs4 import BeautifulSoup

url = 'file:///tmp/mozilla/LiveData.html' # file is locally so far
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

Я получаю следующую ошибку:

NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7fc151db7550>: Failed to establish a new connection: [Errno -2] Name or service not known

Может быть, это не работает, когда это локальный, а не "настоящий" веб-сайт. Спасибо за любую помощь!

2 ответа

Вы не можете использовать .get метод в локальном файле. Сначала прочтите файл, а затем передайте его bs4.
Вы можете достичь подобной вещи с чем-то вроде этого. Пример:

import requests
import urllib.request
import time
from bs4 import BeautifulSoup

# url = 'file:///tmp/mozilla/LiveData.html' # file is locally so far
with open('/tmp/mozilla/LiveData.html', 'r') as f:
    response = f.read()
soup = BeautifulSoup(response.text, "html.parser")

requests.get возвращает ответ с веб-сайта после отправки запроса на получение URL-адреса. Поскольку ваш веб-сайт - это просто локальный файл, а не запущенный в реальном времени (и прослушивание запросов), он ничего не возвращает из запроса get.

request.get(url, params=None, **kwargs)[source] Посылает запрос GET.

Параметры: url - URL для нового объекта запроса. params - (необязательно) словарь, список кортежей или байтов для отправки в строке запроса для запроса. **kwargs - необязательные аргументы, которые принимает запрос. Возвращает: объект ответа

Тип возврата: запросы. Ответ

Другие вопросы по тегам