Привет! Я пытаюсь запустить приведенный ниже код и получаю сообщение об ошибке HTTPError: Forbidden. Это говорит мне о том, что строка с проблемой находится в файле questions.py в папке urllib. Я хотел извлечь данные из интернет-сайта.
Это мой код, который я пытаюсь запустить
import pandas as pd
import geopandas as gpd
data = pd.read_html('https://www.worldometers.info/coronavirus/')
И это ответ, который я получаю с консоли spyder
Python 3.8.2 (default, Mar 26 2020, 15:53:00)
Введите «copyright», «credits» или «license» для получения дополнительной информации.
I Python 7.13.0 - расширенный интерактив Python.
runfile ('/ home / evans / Desktop / GIS DEVELOPMENTS / PROJECTS / Coronavirus2020.py', wdir = '/ home / evans / Desktop / GIS DEVELOPMENTS / PROJECTS') Traceback (последние последний вызов):
Файл "/ home / evans / Desktop / GIS DEVELOPMENTS / PROJECTS / Coronavirus2020.py", строка 5, в данных = pd.read_ html ('https://www.worldometers.info/coronavirus/ ')
Файл "/home/evans/anaconda3/envs/myenv/lib/python3.8/site-packages/pandas/io/html.py", строка 1085, в read_html return _parse (
File "/home/evans/anaconda3/envs/myenv/lib/python3.8/site-packages/pandas/io/html.py", строка 895, в _parse tables = p.parse_tables ()
File "/ home / evans / anaconda3 / envs / myenv / lib / python3 .8 / site-packages / pandas / io / html .py ", строка 213, в таблицах parse_tables = self._parse_tables (self._build_do c (), self.match, self.attrs)
Файл "/home/evans/anaconda3/envs/myenv/lib/python3.8/site-packages/pandas/io/html.py", строка 733, в _build_doc повысить e
Файл "/home/evans/anaconda3/envs/myenv/lib/python3.8/site-packages/pandas/io/html.py", строка 714, в _build_doc с urlopen (self.io) как f:
Файл "/home/evans/anaconda3/envs/myenv/lib/python3.8/site-packages/pandas/io/common.py", строка 141, в urlopen return urllib .request.urlopen (* args, ** kwargs)
Файл "/home/evans/anaconda3/envs/myenv/lib/python3.8/urllib/request.py", строка 222, в urlopen return opener.open (url, data, timeout)
Файл "/home/evans/anaconda3/envs/myenv/lib/python3.8/urllib/request.py", строка 531, в открытый ответ = meta (req, response)
Файл "/home/evans/anaconda3/envs/myenv/lib/python3.8/urllib/request.py", строка 640, в http_response response = self.pa rent.error (
Файл "/home/evans/anaconda3/envs/myenv/lib/python3.8/urllib/request.py", строка 569, при ошибке верните self._call_chain (* args )
Файл "/home/evans/anaconda3/envs/myenv/lib/python3.8/urllib/request.py", строка 502, в _call_chain result = fun c (* args)
Файл "/home/evans/anaconda3/envs/myenv/lib/python3.8/urllib/request.py", строка 649, в http_error_default вызывает HTTPError (req.full_url, code, msg, hdrs, fp)
HTTPError: Forbidden
Сначала проблема заключалась в том, что l xml отсутствовал, поэтому я решил установить его из своей среды, используя pip3 install lxml
, но это ответное сообщение, которое я получил.
Requirement already satisfied: lxml in /usr/lib/python3/dist-packages (4.4.1).
Но это не в моей папке окружения, это в папке base / root. Поэтому я решил использовать pip install l xml, и это сработало. Затем, когда я выполнил его, он вернул вышеуказанную ошибку.
Я буду признателен за любые рекомендации, которые помогут мне преодолеть эту проблему.