{"id":85719,"date":"2020-05-14T04:18:21","date_gmt":"2020-05-13T20:18:21","guid":{"rendered":"http:\/\/4563.org\/?p=85719"},"modified":"2020-05-14T04:18:21","modified_gmt":"2020-05-13T20:18:21","slug":"python-%e5%bc%82%e6%ad%a5%e9%98%9f%e5%88%97%e9%97%ae%e9%a2%98","status":"publish","type":"post","link":"http:\/\/4563.org\/?p=85719","title":{"rendered":"Python \u5f02\u6b65\u961f\u5217\u95ee\u9898"},"content":{"rendered":"<div>\n<div>\n<div>\n<h1>                  Python \u5f02\u6b65\u961f\u5217\u95ee\u9898               <\/h1>\n<p> <\/p>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : fangwenxue <\/span>  <span><i><\/i> 3<\/span> <\/div>\n<div> <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div isfirst=\"1\"> <\/p>\n<pre><code>    async def run_task(self, tasks, task_handler):         consumer = asyncio.ensure_future(self.consume(self.task_queue))          await self.produce(tasks, task_handler, self.task_queue)         await self.task_queue.join()          consumer.cancel()      async def produce(self, tasks, task_handler, queue):         n = len(tasks)         for i, task in enumerate(tasks):             item = (i + 1, n, task, task_handler)             await queue.put(item)      async def consume(self, queue):         async with ClientSession() as session:             while 1:                 item = await queue.get()                 index = item[0]                 count = item[1]                 handler = item[3]                 rs = await handler(item[2], i=index, n=count, session=session)                 print('consuming {}\/{} {}...'.format(index, count, rs))                 queue.task_done()                 # \u53ea\u8981\u52a0\u4e86\u8fd9\u53e5\u7a0b\u5e8f\u5c31\u6302\u8d77\u4e86                 await self.produce(rs, self.detail_handler, self.result_queue)                  loop = asyncio.get_event_loop() loop.run_until_complete(self.run_task(url_list, self.page_handler)) loop.close() <\/code><\/pre>\n<h3>\u6253\u5370<\/h3>\n<pre><code>consuming 1\/5 ... consuming 2\/5 ... <\/code><\/pre>\n<ul>\n<li>\u5982\u679c\u4e0d\u52a0\u8fd9\u53e5\u662f\u6b63\u5e38\u7684<\/li>\n<li>\u52a0\u4e86\u8fd9\u53e5\u4e3a\u4ec0\u4e48\u4f1a\u6302\u8d77<\/li>\n<\/ul>\n<pre><code>await self.produce(rs, self.detail_handler, self.result_queue) <\/code><\/pre>\n<\/p><\/div>\n<div> <b>\u5927\u4f6c\u6709\u8a71\u8aaa<\/b> (<span>0<\/span>)        <\/div>\n<div> <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<ul>\n<li>\n","protected":false},"excerpt":{"rendered":"<p>Python \u5f02\u6b65\u961f\u5217\u95ee\u9898 \u8cc7\u6df1\u5927&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[],"tags":[],"_links":{"self":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/85719"}],"collection":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=85719"}],"version-history":[{"count":0,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/85719\/revisions"}],"wp:attachment":[{"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=85719"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=85719"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=85719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}