urllib.request的应用
ps:此次学习都没封装自己的信息,光是为了学习命令。
获取一个get请求
测试网页:http://www.baidu.com
# -*- coding: UTF-8 -*-
# @Time : 2021/5/11 20:27
# @Author : 李如旭
# @File :testUrllib.py
# @Software: PyCharm
import urllib.request
response = urllib.request.urlopen("http://www.baidu.com")
print(response.read().decode('utf-8'))
获取效果
打开效果(无图片)功能部份正常
获取一个post请求
测试网页:http://httpbin.org/
目标网页反馈码
http://httpbin.org/post(post形式)
代码
# -*- coding: UTF-8 -*-
# @Time : 2021/5/11 20:27
# @Author : 李如旭
# @File :testUrllib.py
# @Software: PyCharm
import urllib.request
#获取一个get请求
# response = urllib.request.urlopen("http://www.baidu.com")
# print(response.read().decode('utf-8'))
#获取一个post请求
import urllib.parse
data = bytes(urllib.parse.urlencode({"hello":"world"}),encoding="utf-8")
response =urllib.request.urlopen("http://httpbin.org/post",data=data)
print(response.read().decode("utf-8"))
运行效果比对目标效果 结果一样 So 完成任务!!
超时处理
以get方法为例
1s没响应即报异常
# -*- coding: UTF-8 -*-
# @Time : 2021/5/11 20:27
# @Author : 李如旭
# @File :testUrllib.py
# @Software: PyCharm
import urllib.request
#获取一个get请求
# response = urllib.request.urlopen("http://www.baidu.com")
# print(response.read().decode('utf-8'))
#获取一个post请求
# import urllib.parse
#
# data = bytes(urllib.parse.urlencode({"hello":"world"}),encoding="utf-8")
# response =urllib.request.urlopen("http://httpbin.org/post",data=data)
# print(response.read().decode("utf-8"))
#超时处理
try:
response =urllib.request.urlopen("http://httpbin.org/get",timeout=1)
print(response.read().decode("utf-8"))
except urllib.error.URLEerror as e:
print("time out!")
response.getheaders()
读取除网页header部分
获取所有信息的代码
# -*- coding: UTF-8 -*-
# @Time : 2021/5/11 20:27
# @Author : 李如旭
# @File :testUrllib.py
# @Software: PyCharm
import urllib.request
#获取一个get请求
# response = urllib.request.urlopen("http://www.baidu.com")
# print(response.read().decode('utf-8'))
#获取一个post请求
# import urllib.parse
#
# data = bytes(urllib.parse.urlencode({"hello":"world"}),encoding="utf-8")
# response =urllib.request.urlopen("http://httpbin.org/post",data=data)
# print(response.read().decode("utf-8"))
# #超时处理
# try:
# response =urllib.request.urlopen("http://httpbin.org/get",timeout=1)
# print(response.read().decode("utf-8"))
# except urllib.error.URLEerror as e:
# print("time out!")
#读取单个内容
response =urllib.request.urlopen("http://www.baidu.com",timeout=1)
print(response.getheaders())
代码实现
单单获得一个信息 比如Bdpagetype
代码
# -*- coding: UTF-8 -*-
# @Time : 2021/5/11 20:27
# @Author : 李如旭
# @File :testUrllib.py
# @Software: PyCharm
import urllib.request
#获取一个get请求
# response = urllib.request.urlopen("http://www.baidu.com")
# print(response.read().decode('utf-8'))
#获取一个post请求
# import urllib.parse
#
# data = bytes(urllib.parse.urlencode({"hello":"world"}),encoding="utf-8")
# response =urllib.request.urlopen("http://httpbin.org/post",data=data)
# print(response.read().decode("utf-8"))
# #超时处理
# try:
# response =urllib.request.urlopen("http://httpbin.org/get",timeout=1)
# print(response.read().decode("utf-8"))
# except urllib.error.URLEerror as e:
# print("time out!")
#读取单个内容
response =urllib.request.urlopen("http://www.baidu.com",timeout=1)
print(response.getheader("Bdpagetype"))
代码实现
…