Как очистить данные URL-адреса с сайта интрасети с помощью python?

Мне нужен Python Warrior, чтобы помочь мне (я нуб)! Я пытаюсь очистить определенные данные с сайта внутри сети, используя модуль urllib. Однако, поскольку это веб-сайт моей компании, который доступен только для просмотра сотрудниками, а не для публики, я думаю, именно поэтому я получаю этот код:

IOError: («Ошибка http», 401, «Не авторизовано», )

Как я пришел к этому? Он даже не будет читать сайт, используя htmlfile.read()

Пример кода для получения общедоступного сайта:

import urllib
import re

htmlfile = urllib.urlopen("http://finance.yahoo.com/q?s=AAPL")

htmltext = htmlfile.read()

regex = '<span id="yfs_l84_aapl">(.+?)</span>' 

pattern = re.compile(regex)

price = re.findall(pattern,htmltext)

print price

person Adan De Leon    schedule 17.07.2014    source источник
comment
Пожалуйста, не анализируйте html с помощью регулярных выражений   -  person heinst    schedule 17.07.2014
comment
@heinst Да. Красивый суп - это гораздо более простой способ анализа HTML. pypi.python.org/pypi/beautifulsoup4   -  person David Greydanus    schedule 17.07.2014
comment
Что ж, я наткнулся на Красивый суп, но я избегал установки, так как моя компания ограничивает многие вещи, которые я не могу скачать :( но я уверен, что смогу убедить некоторых людей. Спасибо за отзыв!   -  person Adan De Leon    schedule 17.07.2014


Ответы (1)


Попробуйте запросы с requests_ntlm:

import requests
from requests_ntlm import HttpNtlmAuth

r = requests.get("http://ntlm_protected_site.com",auth=HttpNtlmAuth('domain\\username','password'))

    print r.text

Если вам нужна помощь по каким-либо особенностям этой библиотеки и вы не можете найти ее в документации, оставьте комментарий.

person David Greydanus    schedule 17.07.2014
comment
Если вы устанавливаете pip, вы можете просто запустить pip install request_ntlm без кавычек, и тогда request_ntlm будет установлен за вас. pip.pypa.io/en/latest/installing.html - person David Greydanus; 17.07.2014
comment
ТЫ ГЕНИЙ!!! НАКОНЕЦ-ТО ЗАРАБОТАЛО! Большое вам спасибо за вашу помощь! Я действительно ценю ваши знания об этом! - person Adan De Leon; 17.07.2014
comment
Любая идея, как избежать очистки моего пароля в исходном коде, потому что он будет использоваться совместно с коллегами? - person sparkle; 03.10.2017
comment
Спасибо+1. Раньше я отвечал на r = request.get(i, auth=(username,password)), но обнаружил, что на этот раз это работает плохо, и ваш код устранил проблему. - person uniquegino; 01.04.2020