Как получить HTML из URL, используя Python? - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь следовать этому руководству , чтобы узнать о веб-очистке. Поскольку я использую Python3, я пытался использовать urllib вместо urllib2, чтобы попытаться правильно запросить URL:

from urllib import request
# tried import urllib
# tried import urllib.request

url = "http://www.bloomberg.com/quote/SPX:IND"
raw_html = request.urlopen(url)

Казалось, ничто не открывало URL правильно, и я получил бы эту ошибку:

urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed. 

Я нашел потенциальное решение, но ничего в сообщении не упоминает такую ​​ошибку.

В конечном счете, я действительно хочу использовать библиотеку запросов Python .

import requests

url = "http://www.bloomberg.com/quote/SPX:IND"
raw_html = requests.get(url)

# get in BeautifulSoup format
processed_html = BeautifulSoup(raw_html.content, "html.parser")
# print('processed_html = ', processed_html)
h1 = processed_html.findAll("h1")
print('h1 = ', h1)

Проблема в том, что я вернул бы только тег h1 Bloomberg, но на веб-странице есть другие теги h1. Когда я смотрю на processed_html, некоторых тегов и классов там нет.

Мне бы очень хотелось решить проблему с библиотекой запросов, но любая помощь или направление приветствуются.

1 Ответ

0 голосов
/ 21 мая 2019

В учебнике вы должны были прочитать:

Правила выскабливания

Вы должны проверить Условия использования веб-сайта, прежде чем начать Это. Внимательно прочитайте заявления о легальном использовании данных. Как правило, данные, которые вы очищаете, не должны использоваться в коммерческих целях. цели.

Теперь либо а) этот учебник был написан некоторое время назад, прежде чем сайт обновил свои Условия обслуживания, б) они получили письменное согласие на очистку сайта, либо в) учебник явно проигнорировал свой собственный совет. Я воспользуюсь сомнением в том, что Условия предоставления услуг изменились с тех пор, как статья была написана 2 года назад или они получили письменное разрешение, но если вы прочитаете Условия использования сайта, вы прочтете:

... Вы не должны использовать или пытаться использовать какие-либо «Скребок», «робот», «бот», «паук», «интеллектуальный анализ данных», «компьютерный код» или любое другое устройство автоматизации, программа, инструмент, алгоритм, процесс или методология для доступа, приобретения, копирования или мониторинга любой части Сервис, любые данные или контент, найденные или доступные через Сервис, или любая другая Сервисная информация без предварительного письменного согласие BLP. Вы не можете подделывать заголовки или иным образом манипулировать идентификаторы, чтобы скрыть происхождение любого другого контента.

Так что я бы посоветовал найти другой сайт для практики, он следует тому же процессу.

...