# 获取网页属性信息
import urllib.request
url = https://www.baidu.com
response = urllib.request.urlopen(url=url)
print( 响应状态码为: ,response.status)
print( 响应头所有信息为: , response.getheaders())
print( 响应头指定信息为: , response.getheader( Accept-Ranges ))
print( HTML代码如下:
, response.read().decode( utf-8 ))
# 发送post请求
import urllib.request
import urllib.parse
url = https://www.httpbin.org/post
data = bytes(urllib.parse.urlencode({ hello : python }), encoding= utf-8 )
response = urllib.request.urlopen(url=url,data=data)
print(response.read().decode( utf-8 ))
# 捕获超时处理网络超时,并进行下一任务
import urllib.request
import urllib.error
import socket
url = https://www.python.org/
try:
response = urllib.request.urlopen(url=url,timeout=0.1)
print(response.read().decode( utf-8 ))
except urllib.error.URLError as error:
if isinstance(error.reason, socket.timeout):
print( 当前任务已超时,即将执行下一任务 )
# 构建完整的网络请求
# urllib.request.Request(url,data=None,headers={},origin_req_host=None,unverifiable=False,method=None)
# url 访问网站的URL完整地址
# data:该参数默认为None,通过该参数确认请求方式,以字典形式的数据作为参数值,如果是None,表明请求方式为GET,否则为POST
# headers:设置请求头部信息,该参数为字典类型
# origin_req_host:用于设置请求方的host名称或IP
# unverifiable:用于设置网页是否需要验证,默认是False
# method:用于设置请求方式,如GET、POST等,默认为GET请求
# 设置请求头参数是为了模拟浏览器向网页后台发送网络请求,这样可以避免服务器的反爬措施
import urllib.request
import urllib.parse
url = https://www.baidu.com/
headers = { User-Agent : Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 }
data = bytes(urllib.parse.urlencode({ hello : python }), encoding= utf-8 )
r = urllib.request.Request(url=url,data=data,headers=headers,method= POST )
response = urllib.request.urlopen(r)
print(response.read().decode( utf-8 ))
# Cookies的获取与设置
# Cookies是服务器向客户端返回响应数据时所留下的标记,当客户端再次访问服务器时将携带这个标记
import urllib.request
import urllib.parse
import http.cookiejar
import json
url = https://passport.mingrisoft.com/Login/checkLogin
data = bytes(urllib.parse.urlencode({ username : *** , password : **** }),encoding= utf-8 )
r = urllib.request.Request(url=url,data=data,method= POST )
cookie = http.cookiejar.CookieJar()
cookie_processor = urllib.request.HTTPCookieProcessor(cookie)
opener = urllib.request.build_opener(cookie_processor)
response = opener.open(r)
response = json.loads(response.read().decode( utf-8 ))
if response == 登录成功 :
for i in cookie:
print(i.name + = + i.value)
出现错误,奇怪了,不知为什么,请大家帮忙解答??
# raise JSONDecodeError(“Expecting value”, s, err.value) from None
# json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
暂无评论内容