如何使用 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 身份验证网站 受信任站点要求提供登录凭据
Intranet 站点的 IE9 兼容模式具有错误的用户代理字符串