公司的网络环境是通过代理上网,用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())
一次性成功。
相关推荐
`urllib`家族(包括`urllib.request`、`urllib.parse`和`urllib.error`等)则提供了更全面的URL操作工具,可以方便地进行网页请求和数据下载。 在处理时间和日期时,`datetime`模块提供了丰富的类和函数,如`...
response.raise_for_status() # 如果状态不是200,会引发HTTPError except requests.exceptions.RequestException as e: print(f"请求出错:{e}") ``` 7. **存储数据**:抓取的数据通常会保存为CSV、JSON或其他...
在Python的编程环境中,urllib库是一个非常重要的模块,它被用来处理URL相关的任务,包括打开URL、解析URL、编码和解码URL等。在Python 2.X版本中,urllib库分为几个子模块,如urllib、urllib2、urlparse等,而在...
C:\Users\86135>pip install pyqt5 Collecting pyqt5 Downloading ...| | 204kB 6.2kB/s eta 2:22:38ERR
urllib包和http包都是面向HTTP协议的。其中urllib主要用于处理 URL,使用...2.urllib.error ———定义了常见的urllib.request会引发的异常; 3.urllib.parse———用于解析 URL; 具体方法: urllib.request.urlop
### Python中的unittest模块详解 ... File "/usr/lib/python2.7/urllib.py", line ... ``` 以上是对Python中`unittest`模块的基本介绍及其使用方式,希望能帮助开发者更好地理解并利用这个强大的测试工具。
Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。 Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。 像Perl语言一样, Python 源代码...整个程序引用了两个lib库,urllib2和sg
文章目录1、urllib库介绍2、request模块3、error模块4、parse模块 1、urllib库介绍 urllib库是Python内置的请求库,能够实现简单的页面爬取功能。值得注意的是,在Python2中,有urllib和urllib2两个库来实现请求...
在执行一个Python程序时遇到错误 `AttributeError: 'NoneType' object has no attribute 'startswith'`。该程序尝试通过GitHub API获取最受欢迎的Python项目,并使用Pygal库将其可视化。错误发生在设置图表样式时,...
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来部署一个网站上线。这个过程涉及多个步骤,包括安装必要的软件包、配置虚拟环境、克隆Django项目以及调整配置文件以实现生产环境的运行...
Python中的多线程是并发执行任务的一种方式,但线程数量过多可能会导致资源竞争和效率下降。为了有效地控制并发线程的数量,我们可以使用Semaphore(信号量)机制。Semaphore 是一种同步原语,它用于限制同时访问...
在Python编程领域,`urllib`库是一个非常基础且实用的模块,用于处理URL相关的任务,包括打开网页、发送HTTP请求等。在这个项目中,我们将使用`urllib`来爬取猫眼电影排行榜上的信息,这涉及到网络爬虫的基础知识...
- URL管理:使用Python的`set()`数据结构存储已访问过的URL,避免重复爬取。 - 页面下载:使用如`requests`等库下载网页内容。 - 链接提取:解析HTML页面,提取出新的链接。 - **链接处理**:检查提取的链接是否...
python3对urllib和urllib2进行了重构,拆分成了urllib.request,urllib.response, urllib.parse, urllib.error等几个子模块,这样的架构从逻辑和结构上说更加合理。urllib库无需安装,python3自带。python 3.x中将...
urllib2在python3后已经合并在urllib中了,具体为urllib.response,urllib.request urllib2.URLError 改为了urllib.error.URLError 文章目录URLError与HTTPError下载网页(requests库也可以) URLError与HTTPError ...
Urllib是Python提供的一个用于操作URL的模块,我们爬取网页的时候,经常需要用到这个库。 升级合并后,模块中的包的位置变化的地方较多。 urllib库对照速查表 Python2.X Python3.X urllib urllib....
urlopen返回的应答对象response(或者HTTPError实例)有两个很有用的方法info()和geturl() 1.geturl(): 这个返回获取的真实的URL,这个很有用,因为urlopen(或者opener对象使用的)或许会有重定向。获取的URL或许跟...