美文网首页
python网络爬虫8:Cookies的获取与设置?

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

作者: 0清婉0 | 来源:发表于2021-01-03 20:30 被阅读0次

    # 获取网页属性信息

    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代码如下:\n', 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)

    相关文章

      网友评论

          本文标题:python网络爬虫8:Cookies的获取与设置?

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