365bet亚洲版登录-bet官网365入口

365bet亚洲版登录拥有超过百间客房,bet官网365入口的文化历经几十年的传承和积淀形成的核心内容获得业界广泛的认可,365bet亚洲版登录是目前信誉最高的娱乐场所,同国内外几百家网上内容供应商建立了合作关系。

最便利的爬虫功用提高措施

明晚察觉位于Tencent云主机上通过crontab定期施行用以爬去斗鱼分类页面数据的爬虫在奉行的时候速度比很慢,于是想透过多线程来进步成效。展开浏览器,键加入关贸总协定协会键字“python 二十三多线程”,开采繁多内容都以应用threading、Queue这一个看起来很笨重的实例。但是结束multiprocessing.dummy现身在前方过后,一切都变得辣么轻松。

multiprocessing.dummy 是multiprocessing的七个子库,二者的分裂之处正是前者选用于线程后面一个首要采取于经过,而它们完毕并行化操作的尤为重要则是map()函数。以自己的两段代码为例:

def insert_info(): ''' 通过遍历游戏分类页面获取所有直播间 ''' session = requests.session() pagecontent = session.get(Directory_url).text pagesoup = BeautifulSoup(pagecontent) games = pagesoup.select col.drop() for game in games: links = game["href"] Qurystr = "/?page=1&isAjax=1" gameurl = HOST + links + Qurystr gamedata = session.get.text flag = get_roominfo aggregateData()

上边这段是前边运营在云主机速度确实跟爬似的代码,通过Directory_url那么些地址,获取到页面中全体的<a></a>标签,并赢得到它们的'href',再相继获取各样链接中的内容,获取想要的东西,最后变成入库专业。全数的百分之百都类似遵纪守法哈。在自个儿的台式机上做测验,完毕具备2032条数据的爬取共耗费时间<strong>140.5s</strong>。

唯独在参预multiprocessing.dummy之后,真的是有飞日常的以为:

from multiprocessing.dummy import Poolpool = Pool()def insert_info(): ''' 通过遍历游戏分类页面获取所有直播间 ''' session = requests.session() pagecontent = session.get(Directory_url).text pagesoup = BeautifulSoup(pagecontent) games = pagesoup.select gameurl = [HOST + url["href"] + "/?page=1&isAjax=1" for url in games] col.drop() g = lambda link: session.get.text gamedata = pool.map(g, gameurl) ginfo = lambda data: get_roominfo pool.map(ginfo, gamedata) aggregateData()

一致通过Directory_url这一地方获取页面中具有标签<a></a>,然后经过pool.map(g, gameurl)达成'href'值的收获,最后再用贰遍pool.map(ginfo,gamedata)实现存着页面内容的领到和入库。再贰次测量试验,只必要<strong>33.1s</strong>就能够成功。

于是说,倘诺您的爬虫也要管理类似的长河,无妨尝试一下multiprocessing。

越多详细新闻能够参见官方文档。

本文由365bet亚洲版登录发布于计算机网络,转载请注明出处:最便利的爬虫功用提高措施

您可能还会对下面的文章感兴趣: