日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

python如何提升爬蟲效率

瀏覽:20日期:2022-07-09 17:19:43

單線程+多任務異步協程

協程

在函數(特殊函數)定義的時候,使用async修飾,函數調用后,內部語句不會立即執行,而是會返回一個協程對象

任務對象

任務對象=高級的協程對象(進一步封裝)=特殊的函數任務對象必須要注冊到時間循環對象中給任務對象綁定回調:爬蟲的數據解析中

事件循環

當做是一個裝載任務對象的容器當啟動事件循環對象的時候,存儲在內的任務對象會異步執行

特殊函數內部不能寫不支持異步請求的模塊,如time,requests...否則雖然不報錯但實現不了異步

time.sleep -- asyncio.sleeprequests -- aiohttp

import asyncioimport timestart_time = time.time()async def get_request(url): await asyncio.sleep(2) print(url,’下載完成!’)urls = [ ’www.1.com’, ’www.2.com’,]task_lst = [] # 任務對象列表for url in urls: c = get_request(url) # 協程對象 task = asyncio.ensure_future(c) # 任務對象 # task.add_done_callback(...) # 綁定回調 task_lst.append(task)loop = asyncio.get_event_loop() # 事件循環對象loop.run_until_complete(asyncio.wait(task_lst)) # 注冊,手動掛起

線程池+requests模塊

# 線程池import timefrom multiprocessing.dummy import Poolstart_time = time.time()url_list = [ ’www.1.com’, ’www.2.com’, ’www.3.com’,]def get_request(url): print(’正在下載...’,url) time.sleep(2) print(’下載完成!’,url)pool = Pool(3)pool.map(get_request,url_list)print(’總耗時:’,time.time()-start_time)

兩個方法提升爬蟲效率

起一個flask服務端

from flask import Flaskimport timeapp = Flask(__name__)@app.route(’/bobo’)def index_bobo(): time.sleep(2) return ’hello bobo!’@app.route(’/jay’)def index_jay(): time.sleep(2) return ’hello jay!’@app.route(’/tom’)def index_tom(): time.sleep(2) return ’hello tom!’if __name__ == ’__main__’: app.run(threaded=True)

aiohttp模塊+單線程多任務異步協程

import asyncioimport aiohttpimport requestsimport timestart = time.time()async def get_page(url): # page_text = requests.get(url=url).text # print(page_text) # return page_text async with aiohttp.ClientSession() as s: #生成一個session對象 async with await s.get(url=url) as response: page_text = await response.text() print(page_text) return page_texturls = [ ’http://127.0.0.1:5000/bobo’, ’http://127.0.0.1:5000/jay’, ’http://127.0.0.1:5000/tom’,]tasks = []for url in urls: c = get_page(url) task = asyncio.ensure_future(c) tasks.append(task)loop = asyncio.get_event_loop()loop.run_until_complete(asyncio.wait(tasks))end = time.time()print(end-start)# 異步執行!# hello tom!# hello bobo!# hello jay!# 2.0311079025268555

’’’aiohttp模塊實現單線程+多任務異步協程并用xpath解析數據’’’import aiohttpimport asynciofrom lxml import etreeimport timestart = time.time()# 特殊函數:請求的發送和數據的捕獲# 注意async with await關鍵字async def get_request(url): async with aiohttp.ClientSession() as s: async with await s.get(url=url) as response: page_text = await response.text() return page_text # 返回頁面源碼# 回調函數,解析數據def parse(task): page_text = task.result() tree = etree.HTML(page_text) msg = tree.xpath(’/html/body/ul//text()’) print(msg)urls = [ ’http://127.0.0.1:5000/bobo’, ’http://127.0.0.1:5000/jay’, ’http://127.0.0.1:5000/tom’,]tasks = []for url in urls: c = get_request(url) task = asyncio.ensure_future(c) task.add_done_callback(parse) #綁定回調函數! tasks.append(task)loop = asyncio.get_event_loop()loop.run_until_complete(asyncio.wait(tasks))end = time.time()print(end-start)

requests模塊+線程池

import timeimport requestsfrom multiprocessing.dummy import Poolstart = time.time()urls = [ ’http://127.0.0.1:5000/bobo’, ’http://127.0.0.1:5000/jay’, ’http://127.0.0.1:5000/tom’,]def get_request(url): page_text = requests.get(url=url).text print(page_text) return page_textpool = Pool(3)pool.map(get_request, urls)end = time.time()print(’總耗時:’, end-start)# 實現異步請求# hello jay!# hello bobo!# hello tom!# 總耗時: 2.0467123985290527

小結

爬蟲的加速目前掌握了兩種方法:

aiohttp模塊+單線程多任務異步協程requests模塊+線程池

爬蟲接觸的模塊有三個:

requestsurllibaiohttp

接觸了一下flask開啟服務器

以上就是python如何提升爬蟲效率的詳細內容,更多關于python提升爬蟲效率的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩精品一区二区三区中文| 欧美在线91| 久久爱www.| 国产精品片aa在线观看 | 你懂的国产精品永久在线| 国产精品久久久久av蜜臀| 高清av一区| 高清av不卡| 日韩精品免费一区二区在线观看| 亚洲成人不卡| 中文欧美日韩| 亚洲tv在线| 久久只有精品| 香蕉人人精品| 日韩一二三区在线观看| 国产精品99精品一区二区三区∴| 国产91在线精品| 亚洲精品91| 欧美日韩xxxx| 91精品啪在线观看国产18| 午夜一区在线| 美女高潮久久久| 日韩精品中文字幕第1页| 99在线|亚洲一区二区| 国产日产一区| 欧美日韩国产在线一区| 91精品国产自产在线丝袜啪| 卡一卡二国产精品| 在线一区视频| 老司机精品视频网| 五月天综合网站| 欧美天堂一区二区| 欧美日韩色图| 国产麻豆精品久久| 一区二区自拍| 久久精品国产亚洲一区二区三区| 女主播福利一区| 麻豆精品国产91久久久久久| 黄色成人精品网站| 久久精品色播| 亚洲欧美日韩视频二区| 欧美成人精品一级| 久久午夜视频| 日韩欧美精品| 欧美日韩亚洲三区| 欧美va亚洲va日韩∨a综合色| 青青伊人久久| 91久久视频| 91亚洲一区| 国产色噜噜噜91在线精品| 亚洲黄色在线| 国产精品久久久久蜜臀| 在线免费观看亚洲| 国产中文欧美日韩在线| 亚洲精品九九| 亚洲a一区二区三区| 欧美国产先锋| 日本亚洲三级在线| 日韩一级网站| 亚洲婷婷免费| 肉色欧美久久久久久久免费看| 91精品丝袜国产高跟在线| 亚洲免费观看| 久久精品国产亚洲夜色av网站| 久久天堂影院| 国产伦理一区| 日韩国产91| 丝袜美腿亚洲色图| 日韩精品免费一区二区三区| 麻豆成人91精品二区三区| 视频一区中文字幕精品| 不卡一区综合视频| 女生影院久久| 国产成人久久精品一区二区三区| 国产精品玖玖玖在线资源| 亚洲欧洲美洲国产香蕉| 久久国产精品亚洲77777| 激情综合网站| 136国产福利精品导航网址| 久久91导航| 日韩在线观看一区| 激情不卡一区二区三区视频在线| 日本麻豆一区二区三区视频| 老牛影视一区二区三区| 伊人久久亚洲热| 91超碰国产精品| 久久天堂精品| 99久久精品网| 免费毛片在线不卡| 亚洲成人一区| 宅男噜噜噜66国产日韩在线观看| 午夜久久福利| 免费日韩av| 亚洲精品无播放器在线播放| 日韩在线一区二区| 日韩一区精品字幕| 视频一区二区欧美| 日韩精品五月天| 中文字幕一区二区三区在线视频| 视频精品一区二区| 日本伊人午夜精品| 91精品丝袜国产高跟在线| 国产日产高清欧美一区二区三区| 国产欧美日韩一级| 免费亚洲一区| 成人在线视频免费看| 亚洲一区资源| 尤物tv在线精品| 午夜宅男久久久| 日韩成人在线看| 精品视频网站| 日韩国产一区二区| 亚洲男女av一区二区| 99日韩精品| 日韩高清一级| 欧美精品导航| 亚洲www免费| 亚洲欧美日韩国产综合精品二区 | 国产精品多人| 精品三级国产| 激情自拍一区| 亚洲开心激情| 欧美激情久久久久久久久久久| 久久这里只有精品一区二区| 日韩不卡视频在线观看| 性一交一乱一区二区洋洋av| 国产日韩一区二区三区在线| 91欧美国产| 三级一区在线视频先锋| 麻豆精品在线视频| 欧美日韩国产高清电影| 91亚洲无吗| 欧美成人基地| 日韩精品亚洲专区在线观看| 成人一二三区| 亚洲久久在线| 激情国产在线| 婷婷久久免费视频| 首页国产精品| 日韩一区精品字幕| 色婷婷色综合| 日日夜夜免费精品视频| 日韩成人亚洲| 欧美亚洲一区二区三区| 伊伊综合在线| 日韩精品亚洲专区| 99久久精品费精品国产| 国产欧美日韩免费观看| 亚洲精品网址| 精品中文在线| 综合干狼人综合首页| 亚洲黄色免费看| 日本一区福利在线| av一区在线| 国产亚洲一区二区三区啪| 三级小说欧洲区亚洲区| 欧美精品影院| 亚洲欧美激情诱惑| 日韩免费福利视频| 国产精品巨作av| 中文字幕成人| 久久精品av| 精品国产a一区二区三区v免费| 亚洲欧美视频| 久久人人精品| 久久99高清| 久久激情av| 亚洲一区二区三区四区电影| 91亚洲国产高清| 欧美天堂一区| 亚洲精品国产精品粉嫩| 亚洲女同中文字幕| 免费在线小视频| 久久精品国产99国产| 少妇精品在线| 日韩专区欧美专区| 婷婷六月综合| 亚洲欧洲高清| 久久久久久婷| 老司机免费视频一区二区| 日韩黄色免费网站| 在线一区视频| 婷婷综合激情| 中文字幕人成乱码在线观看| 国产精品久久久久久av公交车| 日韩中文字幕| 亚洲涩涩av| 另类亚洲自拍| 久久先锋影音| 99国内精品| 在线亚洲国产精品网站| 激情婷婷久久| 午夜日韩福利| 亚洲一区二区三区高清| 日韩午夜在线| 日韩制服丝袜av| 亚洲bt欧美bt精品777| 亚洲ww精品| 五月亚洲婷婷| 日韩一区二区三区高清在线观看|