我要搬家到csdn,大家到那里来看我吧,平台更大,看到的人更多!
2013-07-16 16:20
399 查看
ruby代码
python
View Code
java
html5js
#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 JanDanSpider attr_accessor :base_uri, :cur_page # 定义属性访问器 def initialize(pagesize) @base_uri = 'http://jandan.net/pic' # @表示实例变量、@@表示类变量、$表示全局变量 @dir = '/media/Develop/MyCode/SevenLang/ruby/pic' @pagesize = Integer(pagesize) # 整型转换 end def crawl() Dir.mkdir @dir unless File.directory? @dir # 表判断的方法结尾都有个? totalpage = crawlpage(0) puts "pagesize #{totalpage}" # ""字符会引发字符串替换,''则不会 (1..@pagesize-1).each do |i| # 遍历元组 crawlpage(totalpage - i) end puts 'complete!' end def crawlpage(page) url = page==0 ? @base_uri : @base_uri+'/page-'+page.to_s # to_s是必要的 puts "crawl-page: #{url}" fpage = open(url) html = fpage.read doc = Nokogiri::HTML(html) doc.css('ol.commentlist li').each { |comment| match = /comment-(\d+)/.match(comment['id']) if match id = match[1] oo = Integer(comment.css('#cos_support'+'-'+id)[0].content); xx = Integer(comment.css('#cos_unsupport'+'-'+id)[0].content); xx = 1 if xx==0 if(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) end end } if page==0 cur_page = doc.css(".current-comment-page")[0].content page = Integer(/\d+/.match(cur_page).to_s) end puts "page #{page} done!" page # ruby中每条语句都有返回值,函数内最后一条语句的返回值会被return end def save_pic(url) urlpath = Pathname.new(url) filename = urlpath.basename.to_s dirpath = Pathname.new(@dir) filepath = dirpath.join(filename).to_s open(url) { |fin| open(filepath,"wb") { |fout| while buf = fin.read(4096) do fout.write buf end } } unless File.exists? filepath # 仅当文件不存在时进行抓取 puts 'done!' end end if ARGV.length == 1 spider = JanDanSpider.new($*[0]) # 可从 ARGV 或 $* 读取命令行参数 spider.crawl() else puts 'please input pagesize' #tip: puts, 转义+换行符 print, 转义 p, 换行 end
python
#python-string #python中的字符串用单引号''和双引号""标示 strA = 'this is a string' strB = "this is a message!" #打印两个字符串 print("打印两个字符串") print('strA = ' + strA) print('strB = ' + strB) print("#############################") strC = 'I don\'t know anything' strD = '\'Yes\',I know.' print("字符串中的转移字符") print('strA = ' + strC) print('strB = ' + strD) print("#############################") strE = '这是我的blog,欢迎大家来\n我的博客园溜达' print("字符串中的换行") print('strA = ' + strE) print("#############################") strF = 'this is ''message' strG = 'Hongten' strH = strG * 3 print('字符串可以用\'+\'号连接(或者说粘合),也可以用\'*\'号循环') print('strF原有形式为:\'this is \'\'message\'') print('粘合后的strF:' + strF) print('strG原值为:\'Hongten\',strH = strG * 3,此时strH为:' + strH) print("#############################") strI = 'hongtenzone@foxmail.com' print('字符串可以使用下标(索引)查询') print('源字符串strI = \'hongtenzone@foxmail.com\'') print('字符串strI的长度,len(strI) = ') print(len(strI)) print('strI[0] = ' + strI[0]) print('strI[10] = ' + strI[10]) print('strI[-1] = strI[len(strI) - 1]') print('strI[-1] = ' + strI[-1]) print('strI[len(strI) - 1] = ' + strI[len(strI) - 1]) print("#############################") print('Python 字符串不能改写。按字符串索引赋值会产生错误:') print('strI[0] = \'x\',这样就会产生错误啦') print("#############################") print('过大的索引代替为字符串大小,下界比上界大的返回空字符串') print('strI[0:100] = ' + strI[0:100]) print("#############################") print('索引可以是负数,计数从右边开始') print('strI[-2] = ' + strI[-2]) print('strI[-23:] = ' + strI[-23:]) print("#############################") print('不过-0 还是0,所以它不是从右边计数的!') print('strI[0] = ' + strI[0]) 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值移动content content.style.top = (parseInt(contentTop) + moveY) + 'px'; lastY = nowY; }); parent.addEventListener('touchend', function(e) { // do touchend var nowY = e.touches[0].pageY; var moveY = nowY - lastY; var contentTop = content.style.top.replace('px', ''); // 设置top值移动content content.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值移动content content.style.top = (parseInt(contentTop) + moveY) + 'px'; lastY = nowY; }); parent.addEventListener('touchend', function(e) { // do touchend var nowY = e.touches[0].pageY; var moveY = nowY - lastY; var contentTop = content.style.top.replace('px', ''); // 设置top值移动content content.style.top = (parseInt(contentTop) + moveY) + 'px'; lastY = nowY; });
相关文章推荐
- 我要搬家到csdn,大家到那里来看我吧,平台更大,看到的人更多!
- 今天,逛CSDN看到一篇文章,很有意思,乐意与大家分享。(开发者版本:你属于哪个版本的程序员?)
- 在CSDN论坛上看到一个数据库帖子,觉得挺有意思的,特转过来跟大家分享
- 今天开通了CSDN博客,希望能结识更多的朋友,大家一起学习交流!
- 那天在CSDN上看到一个网友在华为遇到的面试题是一道乘法题看似简其实并不是因为它们都超出了数据类型的范围,今天做了下加法希望对大家有所启示
- 【大咋墙稍】鼓动大家到各自的CSDN好友那里进入如上四项破坏活动
- csdn上的博客搬家到cnblogs了,以后大家请访问http://yjmyzz.cnblogs.com/
- 无刷新显示数据(摘抄)修改。ajax。献给和我一样的人。防止大家看到一堆堆的代码,拿来不能用,改还不知道从那里入手,给人家发消息还不回的人
- 准备搬家到csdn了
- 为什么我不再推荐大家去注册今日神评自媒体平台?
- 看到一个关于网页设计的文章分享过来!大家看看!
- html拼接时,a标签的函数传参时,为什么要加引号?跟转义有无关系?(大家是怎么看到这篇博客的求告知,有什么疑问想说的欢迎评论)
- 大家都来看迷失的季节吧,瓦哈哈
- 首届CSDN.南京区程序员聚会 分组讨论,大家进来看看,找找自己的位置
- [置顶] 博客搬家声明:csdn博客 到 博客园
- Java中,既然double类型比float类型,表示的数值范围更大,大家都用double类型不就行了,Java还发明float类型干什么?因为占内存少于double,其他没有任何优势了
- 2013CSDN博客之星评选活动-希望大家投我一票!
- java开发平台IntelliJ IDEA v15发布更多的内置工具和集成
- 搬家-从百度搬到csdn
- CSDN之路功能已经恢复,感谢大家