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

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

python如何提升爬蟲效率

瀏覽:23日期: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视频| av成人国产| 日韩中文字幕区一区有砖一区| 午夜欧美精品久久久久久久| 蜜臀久久久久久久| 青青在线精品| 亚洲三级毛片| 国产福利亚洲| sm捆绑调教国产免费网站在线观看| 四虎884aa成人精品最新| 模特精品在线| 国产伦理一区| 精精国产xxxx视频在线野外| 欧美日韩视频| 欧美中文高清| 精品国产精品久久一区免费式 | 日韩一区三区| 女同性一区二区三区人了人一| 日韩动漫一区| 欧美视频久久| 国产成人精品亚洲日本在线观看| 国产一区二区高清| 国产丝袜一区| 日韩一区二区三区在线免费观看| 激情久久中文字幕| 一区二区电影| а√天堂8资源中文在线| 一区在线免费观看| 日本aⅴ免费视频一区二区三区| 精品久久久久中文字幕小说| 久久亚洲专区| 亚洲精品伊人| 青青久久av| 日韩一区二区三区免费视频| 国产日韩一区二区三区在线| 久久美女性网| 欧美a级一区二区| 亚洲少妇在线| 国产福利电影在线播放| 亚洲欧洲av| 久久精品av| 欧美日韩xxxx| 蜜臀精品一区二区三区在线观看| 岛国av免费在线观看| 日韩精品免费视频人成 | 啪啪国产精品| 久久这里只有| 欧美另类专区| 高清av一区| 欧美天堂在线| 男女性色大片免费观看一区二区| 久久久久久夜| 国产女人18毛片水真多18精品| 精品中文一区| 久久久久亚洲精品中文字幕| 天堂成人国产精品一区| 久久在线免费| 国产成人a视频高清在线观看| 日韩制服丝袜av| 亚洲黄色免费av| 免费视频一区二区三区在线观看| 视频一区欧美精品| 国产精品精品| 日本综合视频| 亚洲欧美高清| 狠狠操综合网| 色婷婷久久久| 日韩电影免费网站| 国语精品一区| 国产精品嫩模av在线| 日本亚洲不卡| 亚洲精品影视| 亚洲欧洲av| 中文字幕一区二区av| 亚洲综合日韩| 视频在线观看国产精品| 国产国产精品| 精品一区免费| 日本久久综合| 丰满少妇一区| 欧美黑人巨大videos精品| 国产精品中文字幕亚洲欧美| 国产私拍福利精品视频二区| 欧美中文高清| 日本不卡一区二区| 久久精品99国产国产精| 国产亚洲精品精品国产亚洲综合 | 伊人久久av| 91看片一区| 精精国产xxxx视频在线野外| 久久人人精品| 麻豆精品在线观看| 精品五月天堂| 欧美aⅴ一区二区三区视频| 国产精品亲子伦av一区二区三区| 国产精品中文| 欧美国产日本| 欧美激情网址| 国产精品久久观看| 成人在线网站| 亚洲免费观看| 视频一区二区三区在线| 亚洲欧洲专区| 日韩激情综合| 精品视频自拍| 精精国产xxxx视频在线野外| 正在播放日韩精品| 精品一区在线| 亚洲精品第一| 国产一级成人av| 国产中文欧美日韩在线| 麻豆久久一区二区| 日本久久综合| 美女网站一区| 亚洲人成高清| 欧美国产另类| а√天堂8资源在线| 久久精品成人| 亚洲精品亚洲人成在线观看| 久久av日韩| 少妇久久久久| 五月天久久久| 欧美自拍一区| 成人欧美一区二区三区的电影| 免费av一区二区三区四区| 亚洲一区二区三区在线免费| 国产午夜久久av| 国产高清不卡| 免费日本视频一区| 免费亚洲一区| 婷婷综合亚洲| 国产精品网在线观看| 国产一区国产二区国产三区| 国产主播一区| 欧美日韩一区二区三区在线电影| www.九色在线| 精品一区亚洲| 国产日产高清欧美一区二区三区| 亚洲国产福利| 美女网站久久| 欧美a级一区二区| 亚洲午夜在线| 久久国产精品免费一区二区三区| 97精品国产福利一区二区三区| 国产日韩综合| 老色鬼精品视频在线观看播放| 99热精品在线| 国产精品白丝久久av网站| 尤物tv在线精品| 国产精品亚洲一区二区在线观看| 精品欧美一区二区三区在线观看| 国产字幕视频一区二区| 国产亚洲一区| 黄色亚洲在线| 精品亚洲成人| 亚州国产精品| 国产专区一区| 韩日一区二区| 日本视频在线一区| 国产综合精品| 久久超碰99| 亚洲乱码视频| 亚洲国产影院| 精品美女久久| 日韩精品a在线观看91| 亚洲成人不卡| 国产视频网站一区二区三区| 欧美日韩国产免费观看视频| 国产一区二区三区探花| 日本成人中文字幕| 99视频一区| 日韩一区二区三区免费| 欧美极品中文字幕| 日韩高清一级| 亚洲一级黄色| 日本不良网站在线观看| 国产精品视频一区二区三区综合 | 一区二区视频欧美| 日本一区二区高清不卡| 久久不见久久见免费视频7| 日韩激情网站| 亚洲字幕久久| 国产毛片久久| 中文一区在线| 日韩午夜电影| 91久久在线| 久久精品国语| 日韩欧美二区| 最新中文字幕在线播放| 成人污污视频| 国产精品亚洲一区二区在线观看| 婷婷久久免费视频| 日韩精彩视频在线观看| 日本精品久久| 国产欧美日韩视频在线|