`
darkjune
  • 浏览: 309951 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

python url2lib HTTP Error 407

阅读更多

公司的网络环境是通过代理上网,用python url2lib普通的代理验证不能通过,示例代码:

url = 'www.python.org'
username = 'user'
password = 'pass'
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
# None, with the "WithDefaultRealm" password manager means
# that the user/pass will be used for any realm (where
# there isn't a more specific match).
password_mgr.add_password(None, url, username, password)
auth_handler = urllib2.HTTPBasicAuthHandler(password_mgr)
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
print urllib2.urlopen("http://www.python.org")

 

仍然会报以下错误:

HTTP Error 407: Proxy Authentication Required ( Forefront TMG requires authorization to fulfill the request.

查了一下,发现跟公司网络代理使用NTLM验证有关,需要安装python ntml包来完成验证。

简单直接用 easy_install python-ntlm

安装好后下面是官方简单的连接代码:

import urllib2
from ntlm import HTTPNtlmAuthHandler

user = 'domain\user'
password = "pass"
url = "http://www.python.org"

passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, url, user, password)
# create the NTLM authentication handler
auth_NTLM = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler(passman)

# create and install the opener
opener = urllib2.build_opener(auth_NTLM)
urllib2.install_opener(opener)

# retrieve the result
response = urllib2.urlopen(url)
print(response.read())

 一次性成功。

 

1
2
分享到:
评论

相关推荐

    Python Standard Lib

    `urllib`家族(包括`urllib.request`、`urllib.parse`和`urllib.error`等)则提供了更全面的URL操作工具,可以方便地进行网页请求和数据下载。 在处理时间和日期时,`datetime`模块提供了丰富的类和函数,如`...

    Python代码

    response.raise_for_status() # 如果状态不是200,会引发HTTPError except requests.exceptions.RequestException as e: print(f"请求出错:{e}") ``` 7. **存储数据**:抓取的数据通常会保存为CSV、JSON或其他...

    Python2.X/Python3.X中urllib库区别讲解

    在Python的编程环境中,urllib库是一个非常重要的模块,它被用来处理URL相关的任务,包括打开URL、解析URL、编码和解码URL等。在Python 2.X版本中,urllib库分为几个子模块,如urllib、urllib2、urlparse等,而在...

    为python3.8.1安装pyqt5时出现的问题

    C:\Users\86135>pip install pyqt5 Collecting pyqt5 Downloading ...| | 204kB 6.2kB/s eta 2:22:38ERR

    对python3 urllib包与http包的使用详解

    urllib包和http包都是面向HTTP协议的。其中urllib主要用于处理 URL,使用...2.urllib.error ———定义了常见的urllib.request会引发的异常; 3.urllib.parse———用于解析 URL; 具体方法: urllib.request.urlop

    python中unittest的介绍及使用

    ### Python中的unittest模块详解 ... File "/usr/lib/python2.7/urllib.py", line ... ``` 以上是对Python中`unittest`模块的基本介绍及其使用方式,希望能帮助开发者更好地理解并利用这个强大的测试工具。

    Python检测网站链接是否已存在

    Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。 Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。 像Perl语言一样, Python 源代码...整个程序引用了两个lib库,urllib2和sg

    Python爬虫之urllib库

    文章目录1、urllib库介绍2、request模块3、error模块4、parse模块 1、urllib库介绍   urllib库是Python内置的请求库,能够实现简单的页面爬取功能。值得注意的是,在Python2中,有urllib和urllib2两个库来实现请求...

    PythonLightenStyle 类设置基色代码报错.pdf

    在执行一个Python程序时遇到错误 `AttributeError: 'NoneType' object has no attribute 'startswith'`。该程序尝试通过GitHub API获取最受欢迎的Python项目,并使用Pygal库将其可视化。错误发生在设置图表样式时,...

    Python使用urllib2模块实现断点续传下载的方法

    except urllib2.HTTPError as e: if e.code == 416: # 如果服务器返回416错误,表示请求的范围无效 print('Invalid range, server does not support resume.') else: raise e # 示例用法:假设已下载了前20个...

    Python3+django2.0+apache2+ubuntu14部署网站上线的方法

    在本文中,我们将深入探讨如何使用Python3、Django2.0、Apache2以及Ubuntu14来部署一个网站上线。这个过程涉及多个步骤,包括安装必要的软件包、配置虚拟环境、克隆Django项目以及调整配置文件以实现生产环境的运行...

    python多线程semaphore实现线程数控制的示例

    Python中的多线程是并发执行任务的一种方式,但线程数量过多可能会导致资源竞争和效率下降。为了有效地控制并发线程的数量,我们可以使用Semaphore(信号量)机制。Semaphore 是一种同步原语,它用于限制同时访问...

    使用urllib爬取猫眼电影排行榜信息

    在Python编程领域,`urllib`库是一个非常基础且实用的模块,用于处理URL相关的任务,包括打开网页、发送HTTP请求等。在这个项目中,我们将使用`urllib`来爬取猫眼电影排行榜上的信息,这涉及到网络爬虫的基础知识...

    Python实现SQL注入检测插件实例代码

    - URL管理:使用Python的`set()`数据结构存储已访问过的URL,避免重复爬取。 - 页面下载:使用如`requests`等库下载网页内容。 - 链接提取:解析HTML页面,提取出新的链接。 - **链接处理**:检查提取的链接是否...

    Python3如何对urllib和urllib2进行重构

    python3对urllib和urllib2进行了重构,拆分成了urllib.request,urllib.response, urllib.parse, urllib.error等几个子模块,这样的架构从逻辑和结构上说更加合理。urllib库无需安装,python3自带。python 3.x中将...

    我的爬虫学习之路——urllib(urllib2整合到了urllib)

    urllib2在python3后已经合并在urllib中了,具体为urllib.response,urllib.request urllib2.URLError 改为了urllib.error.URLError 文章目录URLError与HTTPError下载网页(requests库也可以) URLError与HTTPError ...

    Python2/3中urllib库的一些常见用法

    Urllib是Python提供的一个用于操作URL的模块,我们爬取网页的时候,经常需要用到这个库。 升级合并后,模块中的包的位置变化的地方较多。 urllib库对照速查表 Python2.X Python3.X urllib urllib....

    零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers

    urlopen返回的应答对象response(或者HTTPError实例)有两个很有用的方法info()和geturl() 1.geturl(): 这个返回获取的真实的URL,这个很有用,因为urlopen(或者opener对象使用的)或许会有重定向。获取的URL或许跟...

Global site tag (gtag.js) - Google Analytics