如何使用 python 从 Intranet 站点抓取 URL 数据?

Posted

技术标签:

【中文标题】如何使用 python 从 Intranet 站点抓取 URL 数据?【英文标题】:How to scrape URL data from intranet site using python? 【发布时间】: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 好吧,我确实遇到了美丽的汤,但我避免安装,因为我的公司限制了很多我无法下载的东西:(但我相信我可以说服一些人。谢谢反馈! 【参考方案1】:

试试requests 和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

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

【讨论】:

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

以上是关于如何使用 python 从 Intranet 站点抓取 URL 数据?的主要内容,如果未能解决你的问题,请参考以下文章

powershell 使用powershell创建一个健全的Intranet子站点

Intranet Windows 身份验证网站 受信任站点要求提供登录凭据

仅 1 个用户拒绝访问本地 Intranet 页面

Intranet 站点的 IE9 兼容模式具有错误的用户代理字符串

Internet Explorer 11 通过元标记禁用“在兼容性视图中显示 Intranet 站点”不起作用

我的电脑通过 *** 连接,Android 模拟器无法访问本地 Intranet 站点