分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

webRequest封装

发布时间:2023-09-06 02:33责任编辑:傅花花关键词:暂无标签
from requests.models import Responseimport requestsimport randomimport timeclass WebRequest(object): ???def __init__(self, *args, **kwargs): ???????pass ???@property ???def user_agent(self): ???????""" ???????return an User-Agent at random ???????:return: ???????""" ???????ua_list = [ ???????????‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101‘, ???????????‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122‘, ???????????‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71‘, ???????????‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95‘, ???????????‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71‘, ???????????‘Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)‘, ???????????‘Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50‘, ???????????‘Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0‘, ???????] ???????return random.choice(ua_list) ???@property ???def header(self): ???????""" ???????basic header ???????:return: ???????""" ???????return {‘User-Agent‘: self.user_agent, ???????????????‘Accept‘: ‘*/*‘, ???????????????‘Connection‘: ‘keep-alive‘, ???????????????‘Accept-Language‘: ‘zh-CN,zh;q=0.8‘} ???def get(self, url, header=None, retry_time=5, timeout=30, ???????????retry_interval=5, *args, **kwargs): ???????""" ???????get method ???????:param url: target url ???????:param header: headers ???????:param retry_time: retry time when network error ???????:param timeout: network timeout ???????:param retry_flag: if retry_flag in content. do retry ???????:param retry_interval: retry interval(second) ???????:param args: ???????:param kwargs: ???????:return: ???????""" ???????headers = self.header ???????if header and isinstance(header, dict): ???????????headers.update(header) ???????while True: ???????????try: ???????????????html = requests.get(url, headers=headers, timeout=timeout, **kwargs) ???????????????return html ???????????except Exception as e: ???????????????print(e) ???????????????retry_time -= 1 ???????????????if retry_time <= 0: ???????????????????# 多次请求失败 ???????????????????resp = Response() ???????????????????resp.status_code = 200 ???????????????????return resp ???????????????time.sleep(retry_interval)

  

webRequest封装

原文地址:https://www.cnblogs.com/zenan/p/10399388.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved