我要搬家到csdn,大家到那里来看我吧,平台更大,看到的人更多!
ruby代码
#encoding: utf-8 require 'net/http' require 'open-uri' require 'nokogiri' # 用于解析html的模块# sudo apt-get install libxslt-dev libxml2-dev # sudo gem install nokogiri require 'pathname'class JanDanSpiderattr_accessor :base_uri, :cur_page # 定义属性访问器def initialize(pagesize)@base_uri = 'http://jandan.net/pic' # @表示实例变量、@@表示类变量、$表示全局变量@dir = '/media/Develop/MyCode/SevenLang/ruby/pic'@pagesize = Integer(pagesize) # 整型转换 enddef crawl()Dir.mkdir @dir unless File.directory? @dir # 表判断的方法结尾都有个?totalpage = crawlpage(0)puts "pagesize #{totalpage}" # ""字符会引发字符串替换,''则不会(1..@pagesize-1).each do |i| # 遍历元组crawlpage(totalpage - i)endputs 'complete!'enddef crawlpage(page)url = page==0 ? @base_uri : @base_uri+'/page-'+page.to_s # to_s是必要的puts "crawl-page: #{url}"fpage = open(url)html = fpage.readdoc = Nokogiri::HTML(html)doc.css('ol.commentlist li').each { |comment|match = /comment-(\d+)/.match(comment['id'])if matchid = match[1]oo = Integer(comment.css('#cos_support'+'-'+id)[0].content);xx = Integer(comment.css('#cos_unsupport'+'-'+id)[0].content);xx = 1 if xx==0if(oo>xx && (oo>200 || oo/xx >10) )src = comment.css('p img')[0]["src"]puts "crawl: oo #{oo} xx #{xx} src #{src}"save_pic(src)endend}if page==0cur_page = doc.css(".current-comment-page")[0].contentpage = Integer(/\d+/.match(cur_page).to_s)endputs "page #{page} done!"page # ruby中每条语句都有返回值,函数内最后一条语句的返回值会被return enddef save_pic(url)urlpath = Pathname.new(url)filename = urlpath.basename.to_sdirpath = Pathname.new(@dir)filepath = dirpath.join(filename).to_sopen(url) { |fin|open(filepath,"wb") { |fout|while buf = fin.read(4096) dofout.write bufend}} unless File.exists? filepath # 仅当文件不存在时进行抓取puts 'done!'endendif ARGV.length == 1spider = JanDanSpider.new($*[0]) # 可从 ARGV 或 $* 读取命令行参数 spider.crawl() elseputs 'please input pagesize' #tip: puts, 转义+换行符 print, 转义 p, 换行 end
python
1 #python-string 2 #python中的字符串用单引号''和双引号""标示 3 strA = 'this is a string' 4 strB = "this is a message!" 5 6 #打印两个字符串 7 print("打印两个字符串") 8 print('strA = ' + strA) 9 print('strB = ' + strB) 10 11 print("#############################") 12 13 strC = 'I don\'t know anything' 14 strD = '\'Yes\',I know.' 15 16 print("字符串中的转移字符") 17 print('strA = ' + strC) 18 print('strB = ' + strD) 19 20 print("#############################") 21 22 strE = '这是我的blog,欢迎大家来\n我的博客园溜达' 23 24 print("字符串中的换行") 25 print('strA = ' + strE) 26 27 print("#############################") 28 29 strF = 'this is ''message' 30 strG = 'Hongten' 31 strH = strG * 3 32 33 print('字符串可以用\'+\'号连接(或者说粘合),也可以用\'*\'号循环') 34 print('strF原有形式为:\'this is \'\'message\'') 35 print('粘合后的strF:' + strF) 36 print('strG原值为:\'Hongten\',strH = strG * 3,此时strH为:' + strH) 37 38 print("#############################") 39 strI = 'hongtenzone@foxmail.com' 40 41 print('字符串可以使用下标(索引)查询') 42 print('源字符串strI = \'hongtenzone@foxmail.com\'') 43 print('字符串strI的长度,len(strI) = ') 44 print(len(strI)) 45 print('strI[0] = ' + strI[0]) 46 print('strI[10] = ' + strI[10]) 47 print('strI[-1] = strI[len(strI) - 1]') 48 print('strI[-1] = ' + strI[-1]) 49 print('strI[len(strI) - 1] = ' + strI[len(strI) - 1]) 50 51 print("#############################") 52 53 print('Python 字符串不能改写。按字符串索引赋值会产生错误:') 54 print('strI[0] = \'x\',这样就会产生错误啦') 55 56 print("#############################") 57 58 print('过大的索引代替为字符串大小,下界比上界大的返回空字符串') 59 print('strI[0:100] = ' + strI[0:100]) 60 61 print("#############################") 62 63 print('索引可以是负数,计数从右边开始') 64 print('strI[-2] = ' + strI[-2]) 65 print('strI[-23:] = ' + strI[-23:]) 66 67 print("#############################") 68 69 print('不过-0 还是0,所以它不是从右边计数的!') 70 print('strI[0] = ' + strI[0]) 71 print('strI[-0] = ' + strI[-0])
View Code
java
/** PROXY_HOST:代理的IP地址* PROXY_PORT_INT:代理的端口号*/Proxy proxy=newProxy(Proxy.Type.HTTP, newInetSocketAddress(PROXY_HOST, PROXY_PORT_INT));URL url=newURL(urlStr);URLConnection conn=url.openConnection(proxy);InputStream is=conn.getInputStream();
html5js
/*** 这里只实现垂直滚动*/
var parent = document.getElementById('parent');
var content = document.getElementById('content')
var startY = 0; // 初始位置
var lastY = 0; // 上一次位置parent.addEventListener('touchstart', function(e) {lastY = startY = e.touches[0].pageY;
});
parent.addEventListener('touchmove', function(e) {var nowY = e.touches[0].pageY;var moveY = nowY - lastY;var contentTop = content.style.top.replace('px', '');// 设置top值移动contentcontent.style.top = (parseInt(contentTop) + moveY) + 'px';lastY = nowY;});
parent.addEventListener('touchend', function(e) {// do touchendvar nowY = e.touches[0].pageY;var moveY = nowY - lastY;var contentTop = content.style.top.replace('px', '');// 设置top值移动contentcontent.style.top = (parseInt(contentTop) + moveY) + 'px';lastY = nowY;
});
/*** 这里只实现垂直滚动*/ var parent = document.getElementById('parent'); var content = document.getElementById('content') var startY = 0; // 初始位置 var lastY = 0; // 上一次位置parent.addEventListener('touchstart', function(e) {lastY = startY = e.touches[0].pageY; }); parent.addEventListener('touchmove', function(e) {var nowY = e.touches[0].pageY;var moveY = nowY - lastY;var contentTop = content.style.top.replace('px', '');// 设置top值移动contentcontent.style.top = (parseInt(contentTop) + moveY) + 'px';lastY = nowY;}); parent.addEventListener('touchend', function(e) {// do touchendvar nowY = e.touches[0].pageY;var moveY = nowY - lastY;var contentTop = content.style.top.replace('px', '');// 设置top值移动contentcontent.style.top = (parseInt(contentTop) + moveY) + 'px';lastY = nowY; });
转载于:https://www.cnblogs.com/vus520/p/3193605.html
我要搬家到csdn,大家到那里来看我吧,平台更大,看到的人更多!相关推荐
- 博客搬家到CSDN:http://blog.csdn.net/yeweiouyang
博客搬家到CSDN:http://blog.csdn.net/yeweiouyang 转载于:https://www.cnblogs.com/yewei/p/4012571.html
- 我的新浪博客搬家到CSDN博客啦!
我的新浪博客搬家到CSDN博客啦! CSDN上有更专业的专家和技术爱好者,有更好的C/C++.数值算法.混合编程的技术文章,所以我也搬过去跟技术大牛一起住,哈哈,我将在CSDN有个新家啦.
- 【成员故事】CSDN邹欣: 2021 年计划把 CSDN 做成中国第一的技术问答平台
开发者生态英雄会简介: 由CSDN发起,面向开发者生态相关从业者,包括但不限于技术品牌.开发者关系拓展.生态拓展等.技术布道师.社区运营等,共同交流学习如何做好生态运营,资源互助的社区. 加入开发者英 ...
- 【成员故事】CSDN邹欣: 2021 年计划把 CSDN 做成中国第一的技术问答平台
开发者生态英雄会简介: 由CSDN发起,面向开发者生态相关从业者,包括但不限于技术品牌.开发者关系拓展.生态拓展等.技术布道师.社区运营等,共同交流学习如何做好生态运营,资源互助的社区. 加入开发者英 ...
- 博客搬家——从CSDN到博客园
前言 作为CSDN五年的老用户,现在不得不做出一个艰难的决定--博客搬家.原博客地址:http://blog.csdn.net/zouyujie1127/ 其实在博客园注册已经两年多了,只是因为大学时 ...
- 下定决心博客搬家(再见csdn,For my oschina!)
2019独角兽企业重金招聘Python工程师标准>>> 感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如有转载,请保留源作者博客信息. ta ...
- 我的ITEYE搬家到csdn
我之前的博客是http://1509930816.iteye.com/ 您好!感谢您对CSDN博客的认可和支持,申请博客搬家请填写下面的表格,我们将发送博客搬家邀请码到您的邮箱. CSDN博客搬家功能 ...
- 从博客园搬家到csdn并能两边同步更新的方法
之前一直在博客园写文章分享,但是文章访问量一直上不去,就想着多个平台刷一下访问量 于是选择了csdn csdn是有博客搬家功能 https://mp.csdn.net/mp_blog/tools/mo ...
- 我要搬家到CSDN了,好吧
好人一生平安 转载于:https://blog.51cto.com/5324257/1070418
最新文章
- java list主要实现_java容器-list的常用实现及原理
- hdu 2544 dijkstra
- 2020牛客暑期多校训练营(第二场)Just Shuffle
- Linux 驱动开发之内核模块开发 (三)—— 模块传参
- react之使用js创建虚拟DOM
- 8个球放入3个盒子方式_颜值与美味并存~分享几款私房盒子蛋糕做法,再也不用排队买了...
- 【java】两个线程如何交替执行,一个输出偶数一个输出奇数?
- VC菜菜鸟-创建一个简单的多线程任务
- VC6.0 Raising Error spawning cl.exe solution
- 2021-09-08 全排列
- 微信小程序视频直播开发实现流程
- java数字转读音_java 数字转汉语读音的程序
- 叉乘点乘混合运算公式_小学数学所有公式和顺口溜都在这里了,考试肯定能用到!...
- 深度linux64位系统下载,深度 Deepin 15.9 操作系统下载
- 服务器设置temp文件夹权限,服务器windows temp 权限设置
- Excel:单元格提取数字,并求和
- IO多路复用之epoll总结 http://www.cnblogs.com/Anker/archive/2013/08/17/3263780.html
- java实现踢下线用户_浅谈踢人下线的设计思路!(附代码实现方案)
- LaTeX—如何把论文模板的关键词从Index Terms 改为Keywords
- python PDF文档
热门文章
- 香港理工大学人工智能设计实验室 博士后 招聘
- 视频增强之“动态范围扩展”HDR技术漫谈
- 妙笔生花!文字图像图形生成技术研究进展
- 推特超2K赞,DeepMind强化学习综述:她可以很快,但快从慢中来
- 医疗设备-呼吸机-数据解析
- 小米3Android密码怎么解吗,小米路由器3管理密码忘记了怎么办?
- 收藏 | 机器学习、深度学习调参手册
- 人工智能发展趋势——深度AI科普调研团队
- linux 缩小链接库体积,两个奇技淫巧,将 Docker 镜像体积减小 99%
- stm32驱动_STM32直流电机启动(一)驱动电路的介绍