url

iOS 播放音效

≡放荡痞女 提交于 2020-03-29 12:33:52
音效:通俗的说是短音频,音频文件必须满足下面的条件   1、播放的时间不能超过30秒   2、数据必须是 PCM或者IMA4流格式   3、必须被打包成下面三个格式之一:Core Audio Format (.caf), Waveform audio (.wav), 或者 Audio Interchange File (.aiff) 1.引入框架 1 #import <AudioToolbox/AudioToolbox.h> 2.播放音效 1 - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 2 { 3 // 声明SoundID 4 SystemSoundID soundID ; 5 self.soundID = soundID; 6 // 获取音效文件的url 7 NSURL *url = [[NSBundle mainBundle] URLForResource:@"m_10.wav" withExtension:nil]; 8 // 根据url创建 9 AudioServicesCreateSystemSoundID((__bridge CFURLRef)url, &soundID); 10 AudioServicesPlaySystemSound(soundID); 11 };   记忆技巧:

云计算面试题集锦

本小妞迷上赌 提交于 2020-03-29 09:02:59
1. 一个大的含有50M个URL的记录,一个小的含有500个URL的记录,找出两个记录里相同的URL。 回答: 首先使用包含500个url的文件创建一个hash_set。 然后遍历50M的url记录,如果url在hash_set中,则输出此url并从hash_set中删除这个url。 所有输出的url就是两个记录里相同的url。 2. 海量日志数据,提取出某日访问百度次数最多的那个IP。 回答:如果日志文件足够的大,大到不能完全加载到内存中的话。那么可以考虑分而治之的策略,按照IP地址的hash(IP)%1024值,将海量日志存储到1024个小文件中。每个小文件最多包含4M个IP地址。对于每个小文件,可以构建一个IP作为key,出现次数作为value的hash_map,并记录当前出现次数最多的1个IP地址。有了1024个小文件中的出现次数最多的IP,我们就可以轻松得到总体上出现次数最多的IP。 3. 有10个文件,每个文件1G,每个文件的每一行都存放的是用户的query,每个文件的query都可能重复。如何按照query的频度排序? 回答:  1)读取10个文件,按照hash(query)%10的结果将query写到对应的文件中。这样我们就有了10个大小约为1G的文件。任意一个query只会出现在某个文件中。  2)对于1)中获得的10个文件,分别进行如下操作   -利用hash

SpringMVC中利用HandlerExceptionResolver完成异常处理

北战南征 提交于 2020-03-29 06:25:17
在解决Controller层中的异常问题时,如果针对每个异常处理相对较为繁琐。在 SpringMVC中提供了HandlerExceptionResolver用于处理捕获到的异常,从而重新定义返回给前端的数据展示方式: 1,实现HandlerExceptionResolver接口; 2,实现方法 resolveException; 3,将自定义类注入到spring中:  若是在普通的web项目中则需要在springmvc的xml文件中手动注入 <bean class="com...common.SpringExceptionResolver" />;   而若是在Springboot中直接用全局异常处理器即可( @ControllerAdvice 结合 @ExceptionHandler(Exception.class) ) /** * 自定义异常返回方式 */ @Slf4j public class SpringExceptionResolver implements HandlerExceptionResolver{ @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex

使用selenium webdriver+beautifulsoup+跳转frame,实现模拟点击网页下一页按钮,抓取网页数据

你说的曾经没有我的故事 提交于 2020-03-29 04:05:55
  记录一次快速实现的python爬虫,想要抓取中财网数据引擎的新三板板块下面所有股票的公司档案,网址为http://data.cfi.cn/data_ndkA0A1934A1935A1986A1995.html。   比较简单的网站不同的页码的链接也不同,可以通过观察链接的变化找出规律,然后生成全部页码对应的链接再分别抓取,但是这个网站在换页的时候链接是没有变化的,因此打算去观察一下点击第二页时的请求   发现使用的是get的请求方法,并且请求里有curpage这个参数,貌似控制着不同页数,于是改动了请求链接中的这个参数值为其他数值发现并没有变化,于是决定换一种方法,就是我们标题中提到的使用selenium+beautifulsoup实现模拟点击网页中的下一页按钮来实现翻页,并分别抓取网页里的内容。   首先我们先做一下准备工作,安装一下需要的包,打开命令行,直接pip install selenium和pip install beautifulsoup4   然后就是下载安装chromedriver的驱动,网址如下https://sites.google.com/a/chromium.org/chromedriver/downloads,记得配置下环境变量或者直接安装在工作目录下。(还可以使用IE、phantomJS等)   这里我们先抓取每一个股票对应的主页链接,代码如下

爬虫之爬汽车之家

孤人 提交于 2020-03-29 00:55:21
一、话说爬虫   先说说爬虫,爬虫常被用来抓取特定网站网页的HTML数据,定位在后端数据的获取,而对于网站而言,爬虫给网站带来流量的同时,一些设计不好的爬虫由于爬得太猛,导致给网站来带很大的负担,当然再加上一些网站并不希望被爬取,所以就出现了许许多多的反爬技术。 二、 安装 模块 1. requests 模块安装方法: pip3 install requests 2、beautisoup模块 软件安装方法: pip3 install beautifulsoup4 或 pip3 install bs4 3、lxml模块 #必须先安装whell依赖 (请换成国内pip源进行安装,否则容易报错)pip install wheel #在cmd中,输入python进入python。 然后输入import pip;print(pip.pep425tags.get_supported()),界面上输出当前python的版本信息,如图。 再跟据上面查到的版本信息,找到下面对应的版本进行安装。 #下载地址:https://pypi.python.org/pypi/lxml/3.7.3 (网站打不开,请翻墙,就可以打开)#python3.5就选择cp3m版本 lxml-3.7.3-cp35-cp35m-win32.whl#安装方法pip3 install lxml-3.6.4-cp35-cp35m

YII2控制器与路由

早过忘川 提交于 2020-03-28 23:22:42
控制器以 Controller 作为后缀,继承自 yii\web\Controller ; 动作以 action 作为前缀,public访问修饰; 控制器ID 类名去后缀,全部转为小写,如果是驼峰命名多个单词转为中杠分割; 动作ID 去前缀,全部转为小写,如果是驼峰命名多个单词,转为中杠分割; 路由如何指向动作: 控制器ID/动作ID URL访问规则: index.php?r=路由 传参使用 &参数=值 的方式 默认路由 site 定义在 yii\web\Application::$defaultRoute 或 yii\base\Module::$defaultRoute 默认动作ID index 定义在 yii\base\Controller::$defaultAction 1.新建一个FooBarController.php <?php namespace app\controllers; use yii\web\Controller; class FooBarController extends Controller { public function actionUserInfo() { return '控制器ID是:foo-bar,动作ID是:user-ino'; } } 浏览器访问: URL生成 Url帮助类工作方式演示 use yii\helpers\Url; //

nodejs爬虫简单实现

試著忘記壹切 提交于 2020-03-28 21:02:40
const fs = require('fs'); const URL = require('url') const gbk = require('gbk') const { JSDOM } = require('jsdom') class Getdata { static http(url) { let Url = URL.parse(url) let http; if (Url.protocol == 'http:') { http = require('http') return { "http": http, 'hostname': Url.hostname, 'path': Url.path } } else { http = require('https') return { "http": http, 'hostname': Url.hostname, 'path': Url.path }; } } get(url, Filename) { Getdata.a += 1 let app = Getdata.http(url); let https = app.http.request({ 'hostname': app.hostname, 'path': app.path }, res => { if (res.statusCode == 200) { //

New iPad遇冷 平板电脑盛宴还是泡沫

独自空忆成欢 提交于 2020-03-28 17:50:19
  继智能手机之后,平板电脑又成为互联网科技企业争相谋篇布局的移动平台。自iPad发布以来,近几年的平板市场上,iPad一直都是平板电脑的王者,独占鳌头。而此时的众多巨头们终于再也按捺不住,纷纷将目光投向这块大蛋糕。亚马逊已有Kindle Fire平板电脑,不久前谷歌也发售了配置和价格都相当有竞争力的Google Nexus 7 平板电脑,随后微软也发布了Surface平板电脑,平板市场从未像现在这般热闹过。   7月20日,苹果New iPad以预约购买的形式正式在中国内地市场销售。但与以往苹果产品上市人山人海时的场面不同,此次发布并没有引起果迷们的极度热情,New iPad的销售量也是平平无奇。业内普遍认为这是New iPad内地上市时间过晚、New iPad革新不够导致苹果神话不再。   在新iPad还未进入中国内地市场之前,中国本土平板电脑借助巨大的市场空档期以低价抢市场,大量千元以下平板电脑纷纷上市。纽曼、汉王、海尔、海信等都推出了不足千元平板电脑产品。除价格更低外,国产厂商也热衷于平板电脑应用的开发,拓展更多的应用功能。但由于巨大的品牌差异,目前国产平板还无法与苹果抗衡。   苹果的平板电脑概念,是在PC市场趋于饱和情况下推出的,它将PC功能中的娱乐休闲与移动手机中的应用平台相结合,颠覆了电脑使用终端的“操作体验”。如今,历史正在重演

用Python盘点那些豆瓣评分低于3.0的奇葩电影

ⅰ亾dé卋堺 提交于 2020-03-28 17:32:32
最近刷抖音,刷到一部抄袭《X战警》电影海报的电影。 连电影海报都需要抄袭,这得是什么烂片! 尝试百度了一下,果然让人哭笑不得,连雷神的麒麟臂都一起抄了。 《女娲日记》绝对刷新你的认识 看了一下它的豆瓣评分,竟然是2分。 纵横观影界那么多年,看到的至少也是3分起步的电影,现在居然还有2分的电影 豆瓣评分最低打一星,换算成分数就是2分,因此豆瓣电影理论上的最低分不是0分,而是2分。 看来豆瓣对于某些电影还是挺照顾的。 感兴趣的朋友可以去看下这部电影,感受下吐槽的乐趣。 好了,进入搬砖模式,今天就来爬取下豆瓣评分在3分一下的那些神片,看看有没有你踩过的坑! 1 数 据 爬 取 | 页面分析 由于页面单次并不显示所有的电影信息,加载电影是URL也没有任何变化。 需要进一步研究页面,找出真实需要爬取的URL信息。 通过该URL可以发现该页面电影的详细信息: | 数据抓取 通过点击加载更多,可以发现一些 规律: 真实URL中参数start会每次增加20,新的URL中呢也会相应的存储对应的20部电影的信息。 掌握这些规律之后,就可以用代码实现抓取了。 for i in range(0,481,20): url = "https://movie.douban.com/j/new_search_subjects?sort=T&range=0,10&tags=%E7%94%B5%E5%BD%B1

css3选择器

﹥>﹥吖頭↗ 提交于 2020-03-28 16:53:35
CSS3 css3属性选择器 根据属性名查找某个标签(E[attr]),代码如下 <style> p {height: 30px; border: 1px solid black;} // 查找含有属性test的p标签 p [test] {background: red;} </style> <body> <p test="dhl">dhl</p> <p test="xb">xiaobei</p> </body> 查找某个属性名为固定值的某个标签(E[attr="value"]),测试代码如下: <style> p {height: 30px; border: 1px solid black;} // 查找test属性值为dhl的p标签 p [test="dhl"] {background: red;} </style> <body> <p test="dhl">dhl</p> <p test="xb">xiaobei</p> </body> E[attr~="value"] 指定属性名,并且具有属性值,此属性值是一个词列表,并且以空格隔开,其中词列表包含了一个value词,而且等号前面的"~"不能不写,详细代码如下: <style> p {height: 30px; border: 1px solid black;} // 查找含有属性test