ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

utllib-cookie + utllib-error

2021-11-27 11:00:17  阅读:95  来源: 互联网

标签:__ url self cookie error print import utllib


utllib-cookie

from os.path import exists
from os import makedirs
from fake_useragent import UserAgent
from urllib import request
from urllib import parse
from http import cookiejar
from hashlib import md5


class UrllibCookie():
    def __init__(self, saveCookieDirPath, url):
        self.saveCookieDirPath = saveCookieDirPath
        self.url = url
        
        self.save()
    
    def getCookieFilePath(self):
        SplitResult = parse.urlsplit(self.url)
        SplitString = ''.join([SplitResult.scheme, '://', SplitResult.hostname])
        
        return self.saveCookieDirPath + '/' + md5(bytes(SplitString, encoding='utf-8')).hexdigest() + '.cookie'
    
    def save(self):
        cookie = cookiejar.MozillaCookieJar()
        handle = request.HTTPCookieProcessor(cookie)
        opener = request.build_opener(handle)
        
        opener.open(self.url)
        cookie.save(self.getCookieFilePath())
    
    def get(self):
        cookie = cookiejar.MozillaCookieJar()
        cookie.load(self.getCookieFilePath())
        
        return cookie


if __name__ == '__main__':
    cookieDirPath = '.cookie'
    
    if not exists(cookieDirPath):
        makedirs(cookieDirPath)
    
    o = UrllibCookie(cookieDirPath, 'https://tieba.baidu.com/index.html?traceid=')
    g = o.get()
    
    print(g)  # <Cookie BAIDUID=558E8D5FE58F96E5A78E9A63E1AE731B:FG=1 for .baidu.com/>

在这里插入图片描述

utllib-error

# CY3761 | 2021-11-27 10:30

from urllib import request
from urllib import error

urlItems = [
    'https://www.google.com',  # 国内无法直接访问
    'https://www.google.cn',  # 国内能访问
    'https://movie.douban.com',  # 需要头信息才能正确访问
]

for url in urlItems:
    print(url)
    
    try:
        res = request.urlopen(url)
    except error.HTTPError as e:  # 说明服务器是有能力响应, 只是某种原因拒绝了你的请求
        print(e)
    except error.URLError as e:  # 地址无法访问可能会触发
        print(e)
    else:
        print(res.code, len(res.read()))

在这里插入图片描述
utllib一般好用,很多处理需要封装

标签:__,url,self,cookie,error,print,import,utllib
来源: https://blog.csdn.net/weixin_63272654/article/details/121573908

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有