【问题标题】:How to scrape URL data from intranet site using python?如何使用 python 从 Intranet 站点抓取 URL 数据?
【发布时间】:2014-09-08 10:28:31
【问题描述】:

我需要一个 Python 战士来帮助我(我是菜鸟)!我正在尝试使用模块 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

【问题讨论】:

  • 请不要用正则表达式解析html
  • @heinst 是的。Beautiful soup 是解析 HTML 的一种更简单的方法。 pypi.python.org/pypi/beautifulsoup4
  • 好吧,我确实遇到了美丽的汤,但我避免安装,因为我的公司限制了很多我无法下载的东西:(但我相信我可以说服一些人。谢谢反馈!

标签: python web-scraping urllib intranet


【解决方案1】:

试试requestsrequests_ntlm

import requests
from requests_ntlm import HttpNtlmAuth

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

    print r.text

如果您需要有关此库的任何细节的帮助并且在文档中找不到它,请发表评论。

【讨论】:

  • 如果你安装了 pip,你可以直接运行,“pip install requests_ntlm”,不带引号,它会为你安装 requests_ntlm。 pip.pypa.io/en/latest/installing.html
  • 你是个天才!!!终于成功了!非常感谢你的帮助!我真的很感谢你在这方面的知识!
  • 知道如何避免在源代码中清楚地输入我的密码,因为它将在同事之间共享?
  • 谢谢+1。我曾经在 r = requests.get(i, auth=(username,password) 上回复,但发现这次效果不好,您的代码解决了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-27
  • 2015-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-04
相关资源
最近更新 更多