# -*- encoding: utf-8 -*-
'''
py 3.6
sumlime
'''
import time
import aiohttp
import asyncio
import functools
from bs4 import BeautifulSoup
now = lambda: time.perf_counter()
async def fetchHtmlText(url):
async with aiohttp.ClientSession(
headers={'users-agent':'Mozilla/5.0'},
connector=aiohttp.TCPConnector(ssl=False)) as session:
async with session.get(url) as response:
return await response.text()
def printInfo(n, future):
print(n, future.result())
# with open('', 'wb') as f:
# f.write(content)
async def main():
url = "https://movie.douban.com/cinema/later/beijing/"
html = await fetchHtmlText(url)
soup = BeautifulSoup(html, "html.parser")
divs = soup.find_all('div', class_='item mod')
urls = tuple(map(lambda x: x.a.img['src'], divs))
names = tuple(map(lambda x: x.h3.a.string, divs))
dats = tuple(map(lambda x: x.ul.li.string, divs))
lis = zip(names, dats, urls)
for i in lis:
print("{0:{3}^25} \t {1:{3}^10} \t {2:{3}^}".format(i[0], i[1], i[2],chr(12288)))
return urls, names, dats
start = now()
loop = asyncio.get_event_loop()
task = loop.create_task(main())
task.add_done_callback(functools.partial(printInfo, 1))
try:
loop.run_until_complete(task)
print("Wall time: {:.2f}".format(now() - start))
finally:
loop.close()
# 九龙不败 07月02日 https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2560169035.jpg
# 别岁 07月02日 https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2558138041.jpg
# 爱宠大机密2 07月05日 https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2555923582.jpg
# 猪猪侠·不可思议的世界 07月05日 https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2560664101.jpg
# 狮子王 07月12日 https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2559658750.jpg
# 宝莱坞机器人2.0:重生归来 07月12日 https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2558657891.jpg
# 机动战士高达NT 07月12日 https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2558661806.jpg
# 嘿,蠢贼 07月16日 https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2560832388.jpg
# 小小的愿望 07月18日 https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2560659129.jpg
# 猪八戒·传说 07月19日 https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2559590242.jpg
# 为家而战 07月19日 https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2559337905.jpg
# 1 (('https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2560169035.jpg', 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2558138041.jpg', 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2555923582.jpg', 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2560664101.jpg', 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2559658750.jpg', 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2558657891.jpg', 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2558661806.jpg', 'https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2560832388.jpg', 'https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2560659129.jpg', 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2559590242.jpg', 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2559337905.jpg'), ('九龙不败', '别岁', '爱宠大机密2', '猪猪侠·不可思议的世界', '狮子王', '宝莱坞机器人2.0:重生归来', '机动战士高达NT', '嘿,蠢贼', '小小的愿望', '猪八戒·传说', '为家而战'), ('07月02日', '07月02日', '07月05日', '07月05日', '07月12日', '07月12日', '07月12日', '07月16日', '07月18日', '07月19日', '07月19日'))
# Wall time: 2.09
# [Finished in 3.7s]
参考