Я пытаюсь получить текст с веб-страницы, используя функцию " get_text ", как описано здесь .
import urllib.request
from inscriptis import get_text
url = "http://www.informationscience.ch"
html = urllib.request.urlopen(url).read().decode('utf-8')
text = get_text(html)
print(text)
Это прекрасно работает для этогоопределенного веб-сайта, но когда я пытаюсь очистить другой веб-сайт, я получаю сообщение об ошибке 403:
import urllib.request
from inscriptis import get_text
url = "https://economictimes.indiatimes.com/markets/stocks/news/birla-group-enters-the-fray-to-acquire-idbi-federal-life/articleshow/64251332.cms"
html = urllib.request.urlopen(url).read().decode('utf-8')
text = get_text(html)
print(text)
Это приводит к следующей ошибке в строке html = urllib.request.urlopen(url).read().decode('utf-8')
:
HTTPError: HTTP Error 403: Forbidden
Я попытался исправить это, указав пользовательский агент следующим образом:
import urllib.request
from inscriptis import get_text
url = "https://economictimes.indiatimes.com/markets/stocks/news/birla-group-enters-the-fray-to-acquire-idbi-federal-life/articleshow/64251332.cms"
html = urllib.request.urlopen(url, headers={'User-Agent': 'Mozilla/5.0'}).read().decode('utf-8')
text = get_text(html)
print(text)
, но получаю следующую ошибку:
TypeError: urlopen() got an unexpected keyword argument 'headers'
Так как в сообщении об ошибке указано headers
не определено для urlopen
, я попытался указать пользовательский агент с модулем requests
следующим образом:
from inscriptis import get_text
import requests
url = requests.get('https://economictimes.indiatimes.com/markets/stocks/news/birla-group-enters-the-fray-to-acquire-idbi-federal-life/articleshow/64251332.cms', "lxml", headers={'User-Agent': 'Mozilla/5.0'})
print(get_text(url))
Но это дает следующую ошибку:
AttributeError: 'Response' object has no attribute 'strip'
Как сделатьЯ получаю этот чертов сервер, чтобы прекратить блокировать мои веб-обходы, пожалуйста?