美文网首页
urllib库入门

urllib库入门

作者: jdzhangxin | 来源:发表于2018-11-24 13:37 被阅读3次

urllib是python内置的HTTP请求库

主要包括以下四大模块:

No. 模块 功能
1 urllib.request 请求模块
2 urllib.error 异常处理模块
3 urllib.parse url解析模块
4 urllib.robotparser robots.txt解析模块

最简单的爬虫例子(请求方式为GET)

import urllib.request

# 发送请求到baidu,获取响应
response = urllib.request.urlopen('http://www.baidu.com')

# 读取响应信息(编码方式为utf-8),并打印出来
print(response.read().decode('utf-8'))
  • urllib.request.urlopen函数说明
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)

主要使用前三个参数

No. 参数 含义
1 url 请求URL
2 data 请求体
3 timeout 超时时间

请求方式为POST

import urllib.parse
import urllib.request

# 请求头
data = bytes(urllib.parse.urlencode({'word': 'hello'}), encoding='utf8')
print(data)

# 发送请求并获取响应
response = urllib.request.urlopen('http://httpbin.org/post', data=data)
print(response.read())

注意

  1. bytes(urllib.parse.urlencode())POST数据进行转换放到urllib.request.urlopendata参数中。
  2. 函数urllib.request.urlopen()是通过有无data参数决定请求方式是GET还是POST

扩展

  • 获取更多响应信息
No. 函数 功能
1 response.status 获取状态码
2 response.getheaders().response.getheader("server") 获取响应头
3 response.read() 获取响应体

如何设置请求头在下面具体实战中介绍。

相关文章

网友评论

      本文标题:urllib库入门

      本文链接:https://www.haomeiwen.com/subject/eosqfqtx.html