电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python grequests模塊使用場景及代碼實例

瀏覽:43日期:2022-07-14 15:21:30

使用場景:

1) 爬蟲設置ip代理池時驗證ip是否有效

2)進行壓測時,進行批量請求等等場景

grequests 利用 requests和gevent庫,做了一個簡單封裝,使用起來非常方便。

grequests.map(requests, stream=False, size=None, exception_handler=None, gtimeout=None)

Python grequests模塊使用場景及代碼實例

另外,由于grequests底層使用的是requests,因此它支持

GET,OPTIONS, HEAD, POST, PUT, DELETE 等各種http method

所以以下的任務請求都是支持的

grequests.post(url, json={“name”:“zhangsan”})grequests.delete(url)

代碼如下:

import grequestsurls = [ ’http://www.baidu.com’, ’http://www.qq.com’, ’http://www.163.com’, ’http://www.zhihu.com’, ’http://www.toutiao.com’, ’http://www.douban.com’]rs = (grequests.get(u) for u in urls)print(grequests.map(rs)) # [<Response [200]>, None, <Response [200]>, None, None, <Response [418]>]def exception_handler(request, exception): print('Request failed')reqs = [ grequests.get(’http://httpbin.org/delay/1’, timeout=0.001), grequests.get(’http://fakedomain/’), grequests.get(’http://httpbin.org/status/500’)]print(grequests.map(reqs, exception_handler=exception_handler))

實際操作中,也可以自定義返回的結果

修改grequests源碼文件:

例如:

新增extract_item() 函數合修改map()函數

def extract_item(request): ''' 提取request的內容 :param request: :return: ''' item = dict() item['url'] = request.url item['text'] = request.response.text or '' item['status_code'] = request.response.status_code or 0 return itemdef map(requests, stream=False, size=None, exception_handler=None, gtimeout=None): '''Concurrently converts a list of Requests to Responses. :param requests: a collection of Request objects. :param stream: If True, the content will not be downloaded immediately. :param size: Specifies the number of requests to make at a time. If None, no throttling occurs. :param exception_handler: Callback function, called when exception occured. Params: Request, Exception :param gtimeout: Gevent joinall timeout in seconds. (Note: unrelated to requests timeout) ''' requests = list(requests) pool = Pool(size) if size else None jobs = [send(r, pool, stream=stream) for r in requests] gevent.joinall(jobs, timeout=gtimeout) ret = [] for request in requests: if request.response is not None: ret.append(extract_item(request)) elif exception_handler and hasattr(request, ’exception’): ret.append(exception_handler(request, request.exception)) else: ret.append(None) yield ret

可以直接調用:

import grequestsurls = [ ’http://www.baidu.com’, ’http://www.qq.com’, ’http://www.163.com’, ’http://www.zhihu.com’, ’http://www.toutiao.com’, ’http://www.douban.com’]rs = (grequests.get(u) for u in urls)response_list = grequests.map(rs, gtimeout=10)for response in next(response_list): print(response)

支持事件鉤子

def print_url(r, *args, **kwargs):print(r.url)url = “http://www.baidu.com”res = requests.get(url, hooks={“response”: print_url})tasks = []req = grequests.get(url, callback=print_url)tasks.append(req)ress = grequests.map(tasks)print(ress)

Python grequests模塊使用場景及代碼實例

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 网络推广公司_网络营销方案策划_企业网络推广外包平台-上海澜推网络 | 微型驱动系统解决方案-深圳市兆威机电股份有限公司 | 全自动实验室洗瓶机,移液管|培养皿|进样瓶清洗机,清洗剂-广州摩特伟希尔机械设备有限责任公司 | 不锈钢水箱生产厂家_消防水箱生产厂家-河南联固供水设备有限公司 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 山东氧化铁红,山东铁红-淄博科瑞化工有限公司 | 微学堂-电动能源汽车评测_电动车性能分享网 | 制丸机,小型中药制丸机,全自动制丸机价格-甘肃恒跃制药设备有限公司 | 贝朗斯动力商城(BRCPOWER.COM) - 买叉车蓄电池上贝朗斯商城,价格更超值,品质有保障! | 电缆隧道在线监测-智慧配电站房-升压站在线监测-江苏久创电气科技有限公司 | UV-1800紫外光度计-紫外可见光度计厂家-翱艺仪器(上海)有限公司 | 真空上料机(一种真空输送机)-百科| 银川美容培训-美睫美甲培训-彩妆纹绣培训-新娘化妆-学化妆-宁夏倍莱妮职业技能培训学校有限公司 临时厕所租赁_玻璃钢厕所租赁_蹲式|坐式厕所出租-北京慧海通 | 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | 铝板冲孔网,不锈钢冲孔网,圆孔冲孔网板,鳄鱼嘴-鱼眼防滑板,盾构走道板-江拓数控冲孔网厂-河北江拓丝网有限公司 | 防勒索软件_数据防泄密_Trellix(原McAfee)核心代理商_Trellix(原Fireeye)售后-广州文智信息科技有限公司 | 膜结构车棚|上海膜结构车棚|上海车棚厂家|上海膜结构公司 | 丙烷/液氧/液氮气化器,丙烷/液氧/液氮汽化器-无锡舍勒能源科技有限公司 | 智慧钢琴-电钢琴-便携钢琴-数码钢琴-深圳市特伦斯乐器有限公司 | 桂林腻子粉_内墙外墙抗裂砂浆腻子粉推荐广西鑫达涂料厂家供应 | 水平垂直燃烧试验仪-灼热丝试验仪-漏电起痕试验仪-针焰试验仪-塑料材料燃烧检测设备-IP防水试验机 | 软文发布平台 - 云软媒网络软文直编发布营销推广平台 | 质检报告_CE认证_FCC认证_SRRC认证_PSE认证_第三方检测机构-深圳市环测威检测技术有限公司 | 江西自考网| 丽陂特官网_手机信号屏蔽器_Wifi信号干扰器厂家_学校考场工厂会议室屏蔽仪 | 超细粉碎机|超微气流磨|气流分级机|粉体改性设备|超微粉碎设备-山东埃尔派粉碎机厂家 | 基本型顶空进样器-全自动热脱附解吸仪价格-AutoHS全模式-成都科林分析技术有限公司 | 拉力测试机|材料拉伸试验机|电子拉力机价格|万能试验机厂家|苏州皖仪实验仪器有限公司 | 膏方加工_丸剂贴牌_膏滋代加工_湖北康瑞生物科技有限公司 | 精准猎取科技资讯,高效阅读科技新闻_科技猎| 房间温控器|LonWorks|海思 | 国资灵活用工平台_全国灵活用工平台前十名-灵活用工结算小帮手 | 标准品网_标准品信息网_【中检计量】 | WTB5光栅尺-JIE WILL磁栅尺-B60数显表-常州中崴机电科技有限公司 | 乙炔气体报警装置|固定式氯化氢检测仪|河南驰诚电气百科 | 合肥通道闸-安徽车牌识别-人脸识别系统厂家-安徽熵控智能技术有限公司 | 成都网站建设制作_高端网站设计公司「做网站送优化推广」 | 低粘度纤维素|混凝土灌浆料|有机硅憎水粉|聚羧酸减水剂-南京斯泰宝 | 上海阳光泵业制造有限公司 -【官方网站】 | 除湿机|工业除湿机|抽湿器|大型地下室车间仓库吊顶防爆除湿机|抽湿烘干房|新风除湿机|调温/降温除湿机|恒温恒湿机|加湿机-杭州川田电器有限公司 |