龙岩做网站龙岩网页设计,建设银行e路通网站,青岛专业网站制作团队,网页制作方案策划怎样通过 urllib库 发送 HTTP 请求#xff1f; urllib库主要由四个模块组成:
urllib.request 打开和读取 URLurllib.error 包含 urllib.request 抛出的异常urllib.parse 用于解析 URLurllib.robotparser 用于解析 robots.txt 文件
1. 使用urllib.parse解析URL 使用urlparse(…怎样通过 urllib库 发送 HTTP 请求 urllib库主要由四个模块组成:
urllib.request 打开和读取 URLurllib.error 包含 urllib.request 抛出的异常urllib.parse 用于解析 URLurllib.robotparser 用于解析 robots.txt 文件
1. 使用urllib.parse解析URL 使用urlparse()分段URL 在这里我们用urlparse()函数构建了一个实例对象ParseResult类型并将其赋值给result以便调用。 事实上ParseResult类型对象包含6个部分 scheme,代表协议通常在://前面这里即httpnetloc,代表域名通常在第一个/前面这里即docs.python.org:80path,代表访问路径通常在域名之后这里即/3/library/urllib.parse.htmlparams,代表参数通常在?之前这里不存在query,代表查询条件通常在?之后这里也不存在fragment,代表瞄点通常在#之后用于直接定位页面内部的下拉位置这里即url-parsing 使用urlunparse()构造URL 事实上在urllib.parse中解析URL的方法不仅有urlparse()函数还有urlsplit()等构造URL的方法不仅有urlunparse()函数还有urlunsplit和urlencode()等。
2. 使用urllib.request打开 URL模拟发送请求 使用urllib.request.urlopen函数发送HTTP请求构造对象 urllib.request.urlopen 函数构造一个接受请求的实例对象HTTPResponse类型并将其赋值给response变量,以便之后使用。 read()方法可以得到返回的网页内容。事实上HTTPResponse类型的对象不仅可以调用read()和getheaders()等方法还可以调用status和msg等属性来查看请求发送后返回的一系列信息。 通过Request类灵活配置参数构建请求信息对象 这里我们依然使用urlopen()方法来发送HTTP请求但是传递的不再是单纯的URL而是一个Request类型的对象。通过集合各种参数将其独立成一个对象可以更加丰富和灵活地配置参数。 这里的headers即为请求头method即为请求方法 使用Handler处理器进行高级操作以Cookies处理为例 HTTPCookieProcessor是urllib.request模块里用于处理Cookie的一个类。值得注意的是这里打开链接的不再是request.urlopen()函数而是用Opener对象的open()方法来发出请求。
3. 使用urllib.error捕捉请求错误进行异常处理 使用URLError类捕捉URL异常 在这里如果发生网页不存在等请求异常我们就可以通过URLError捕捉异常从而避免程序的异常终止 使用HTTPError类捕捉HTTP请求错误