python网络爬虫8:Cookies的获取与设置?

# 获取网页属性信息

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)

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容