python 使用 urllib2 抓取网页内容

 

含有身份验证的网页,无论是 http 还是 https, 以下代码均适用。(如果还是报权限问题,有可能是 header 问题。)

import urllib2

class WebRequester(object):
    def __init__(self, top_level_url, user, passwd):
        password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
        password_mgr.add_password(None, top_level_url, user, passwd)
        handler = urllib2.HTTPBasicAuthHandler(password_mgr)
        opener = urllib2.build_opener(handler)
        urllib2.install_opener(opener)

    def get_page(self, url):
        fd = urllib2.urlopen(url)
        return fd.read().encode('utf-8')

说明:在init中,install 了一个openner, 作为default 的openner, 之后的请求默认由它发出(如果不另外声明),urlopen 会使用该openner。

但是 open 不会使用它。所以,临时请求网页,可以直接使用 urllib2.build_opener().open(url)。

 

opener = urllib2.build_opener()
fd = opener.open(url)

 

你可能感兴趣的:(python 使用 urllib2 抓取网页内容)