V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Shy07  ›  全部回复第 10 页 / 共 10 页
回复总数  200
1  2  3  4  5  6  7  8  9  10  
2015-09-06 16:35:15 +08:00
回复了 bdnet 创建的主题 分享发现 这两网站长的太像。。。
看 about ,联系方式完全一样
去 leetcode 刷题,遇到有困难的,不要搜答案,直接找相关的书籍补充知识,全部靠自己做完,指针算法逻辑也就基本 OK 了
剩下的就是 cpp 花样编程了,想全部精通是不可能的,宏对象过程泛型函数式找一种喜欢的,造个小轮子练练手
2015-09-05 22:34:42 +08:00
回复了 explist 创建的主题 Python 如何用 python 抓取银行各年利率(动态的)?
@explist
看他的 js ,最后是 submit 提交的,所以把页面里所有可以提交的表单元素找出来就行了
2015-09-05 22:01:32 +08:00
回复了 explist 创建的主题 Python 如何用 python 抓取银行各年利率(动态的)?
@explist
表单就五个参数, post 给原地址就可以了
'__EVENTTARGET' => 'Sel_Date', 固定
'__EVENTARGUMENT' => '', 固定
'__LASTFOCUS' => '', 固定
'__VIEWSTATE' => 那串 Base64 ,固定
'Sel_Date' => 日期,可变
2015-09-05 21:38:16 +08:00
回复了 kidneyband 创建的主题 程序员 想搞个网站,让自己 exciting 起来。
在 v2 也要细软跑了么
2015-09-05 21:03:30 +08:00
回复了 flydogs 创建的主题 程序员 做为业余米农的专业码农,我是不是太投入了
如果是 .org 可以卖更多钱
2015-09-05 20:58:35 +08:00
回复了 explist 创建的主题 Python 如何用 python 抓取银行各年利率(动态的)?
施工完毕

require 'net/http'

uri = URI.parse ("http://www.icbc.com.cn/ICBCDynamicSite2/other/rmbdeposit.aspx")
html = Net::HTTP.get uri
dates = []
html.scan (/<option value="(\d{4}-\d{2}-\d{2})">/) {|s| dates += s }
html =~ /name="__VIEWSTATE" id="__VIEWSTATE" value="(.*)" \/>/

params = {
'__EVENTTARGET' => 'Sel_Date',
'__EVENTARGUMENT' => '',
'__LASTFOCUS' => '',
'__VIEWSTATE' => $1.clone
}

dates.each do |date|
params['Sel_Date'] = date
res = Net::HTTP.post_form uri, params
# 正则提取具体内容就不写了,这里直接输出 html =_=b
open ("#{date}.html", 'w') {|io| io.write res.body }
end
2015-09-05 20:25:36 +08:00
回复了 explist 创建的主题 Python 如何用 python 抓取银行各年利率(动态的)?
写了一个 Ruby 版的,只要改个日期就可以了

```ruby

require 'net/http'

params = {
'Sel_Date' => '2012-07-06', # 修改日期即可
'__EVENTTARGET' => 'Sel_Date',
'__EVENTARGUMENT' => '',
'__LASTFOCUS' => '',
'__VIEWSTATE' => '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PC90ZD48dGQgaGVpZ2h0PSIxOSIgd2lkdGg9IjQzJSIgYWxpZ249ImNlbnRlciI+Jm5ic3A7PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjU3JSIgYWxpZ249ImNlbnRlciIgaGVpZ2h0PSIxOSI+5LiJ5Liq5pyIPC90ZD48dGQgd2lkdGg9IjQzJSIgYWxpZ249ImNlbnRlciIgaGVpZ2h0PSIxOSI+MS42PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjU3JSIgYWxpZ249ImNlbnRlciIgaGVpZ2h0PSIxOSI+5Y2K5bm0PC90ZD48dGQgd2lkdGg9IjQzJSIgYWxpZ249ImNlbnRlciIgaGVpZ2h0PSIxOSI+MS44PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjU3JSIgYWxpZ249ImNlbnRlciIgaGVpZ2h0PSIxOSI+5LiA5bm0PC90ZD48dGQgd2lkdGg9IjQzJSIgYWxpZ249ImNlbnRlciIgaGVpZ2h0PSIxOSI+MjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSI1NyUiIGFsaWduPSJjZW50ZXIiIGhlaWdodD0iMTkiPuS6jOW5tDwvdGQ+PHRkIHdpZHRoPSI0MyUiIGFsaWduPSJjZW50ZXIiIGhlaWdodD0iMTkiPjIuNTwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSI1NyUiIGFsaWduPSJjZW50ZXIiIGhlaWdodD0iMTkiPuS4ieW5tDwvdGQ+PHRkIHdpZHRoPSI0MyUiIGFsaWduPSJjZW50ZXIiIGhlaWdodD0iMTkiPjM8L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNTclIiBhbGlnbj0iY2VudGVyIiBoZWlnaHQ9IjE5Ij7kupTlubQ8L3RkPjx0ZCB3aWR0aD0iNDMlIiBhbGlnbj0iY2VudGVyIiBoZWlnaHQ9IjE5Ij4zLjA1PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjU3JSIgaGVpZ2h0PSIxOSI+PGRpdiBhbGlnbj0ibGVmdCI+Mi7pm7blrZjmlbTlj5bjgIHmlbTlrZjpm7blj5bjgIHlrZjmnKzlj5bmga88L2Rpdj48L3RkPjx0ZCB3aWR0aD0iNDMlIiBoZWlnaHQ9IjE5Ij4mbmJzcDs8L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNTclIiBhbGlnbj0iY2VudGVyIiBoZWlnaHQ9IjE5Ij7kuIDlubQ8L3RkPjx0ZCB3aWR0aD0iNDMlIiBhbGlnbj0iY2VudGVyIiBoZWlnaHQ9IjE5Ij4xLjY8L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNTclIiBhbGlnbj0iY2VudGVyIiBoZWlnaHQ9IjE5Ij7kuInlubQ8L3RkPjx0ZCB3aWR0aD0iNDMlIiBhbGlnbj0iY2VudGVyIiBoZWlnaHQ9IjE5Ij4xLjg8L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNTclIiBhbGlnbj0iY2VudGVyIiBoZWlnaHQ9IjE5Ij7kupTlubQ8L3RkPjx0ZCB3aWR0aD0iNDMlIiBhbGlnbj0iY2VudGVyIiBoZWlnaHQ9IjE5Ij4xLjg1PC90ZD48L3RyPjx0cj48dGQgaGVpZ2h0PSIxOSI+PGRpdiBhbGlnbj0ibGVmdCI+My7lrprmtLvkuKTkvr88L2Rpdj48L3RkPjx0ZCBjb2xzcGFuPSIyIiBoZWlnaHQ9IjE5IiBhbGlnbj0ibGVmdCI+5oyJ5LiA5bm05Lul5YaF5a6a5pyf5pW05a2Y5pW05Y+W5ZCM5qGj5qyh5Yip546H5omTNuaKmDwvdGQ+PC90cj48dHI+PHRkIGhlaWdodD0iMTkiPjxkaXYgYWxpZ249ImxlZnQiPuS6jOOAgeWNj+WumuWtmOasvjwvZGl2PjwvdGQ+PHRkIGNvbHNwYW49IjIiIGFsaWduPSJjZW50ZXIiIGhlaWdodD0iMTkiPjEuMTU8L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNTclIiBoZWlnaHQ9IjE5Ij48ZGl2IGFsaWduPSJsZWZ0Ij7kuInjgIHpgJrnn6XlrZjmrL48L2Rpdj48L3RkPjx0ZCB3aWR0aD0iNDMlIiBoZWlnaHQ9IjE5Ij48Zm9udCBjb2xvcj0iI2ViZWJlYiI+LjwvZm9udD48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNTclIiBhbGlnbj0iY2VudGVyIiBoZWlnaHQ9IjE5Ij7kuIDlpKk8L3RkPjx0ZCB3aWR0aD0iNDMlIiBhbGlnbj0iY2VudGVyIiBoZWlnaHQ9IjE5Ij4wLjg8L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNTclIiBhbGlnbj0iY2VudGVyIiBoZWlnaHQ9IjE5Ij7kuIPlpKk8L3RkPjx0ZCB3aWR0aD0iNDMlIiBhbGlnbj0iY2VudGVyIiBoZWlnaHQ9IjE5Ij4xLjM1PC90ZD48L3RyPjwvdGFibGU+ZGRDrgsxnIFuzBq+7MoE9zn85XGzBQ=='
}

uri = URI.parse ("http://www.icbc.com.cn/ICBCDynamicSite2/other/rmbdeposit.aspx")
res = Net::HTTP.post_form uri, params
puts res.body
```
2015-08-23 22:56:07 +08:00
回复了 gzxultra 创建的主题 Markdown Mou1.0, 8 月 31 号发
VSC ,虽然还是预览版,但 Markdown 功能已经够用
@jiang42 Python 确实是强类型的 https://en.wikipedia.org/wiki/Python_(programming_language)
所谓强类型就是不同的类型操作之前需要进行强制转换,强制转换可以是显式的,也可以是隐式的
Swift 和 Python 不清楚,但是 Ruby 是强类型的,Ruby 的变量是“Duck Type”,隐式转换的前提是对象存在 to_s, to_i 这类转换方法。
eg:
a = 10086
puts a # 打印的不是 a 本身的对象,而是 a.to_s 返回的对象,隐式转换
a = "10086" # 为什么可以改变 a 的类型?Ruby 的变量是动态类型
puts a == 10086 # => false,为什么?因为 a 是 String,10086 是 Fixnum,强类型
puts 10087 == a.to_i + 1 # => true,显示转换类型,为什么支持调用 to_i ?Duck Type
puts 10087 == a + 1 # => no implicit conversion of Fixnum into String (TypeError)

如果想要看到
document.write('10086' == 10086); // => true
这类代码,我建议还是继续 JS 大法好吧
@IamI 写的时候无所谓,读起来就痛苦了
btw,胖达好久不见
2015-08-04 19:47:32 +08:00
回复了 nashangban 创建的主题 推广 无法复制的青春,无法复制的 war3| WOWer 集结号已吹响
目前职业:Rubist、PHPer
魔兽角色: Sangiovese@红龙军团(cn)
种族:BE
游戏职业:Hunter
2015-08-02 18:58:39 +08:00
回复了 rondo9 创建的主题 Python python 各个版本之间为何差距很大?
@lilydjwg C API 涉及到 Ruby 的实现问题了,这个确实,我有个项目每次升级 Ruby 解释器都要修改 Ruby 头文件,但这个和 Ruby 本身语法没关系。编码问题加个“#encoding:utf-8”基本解决,同样也和本身语法没关系。

我所知道的语法不兼容,唯一一例就是 1.9 之后“case ... when ...”结构里“when”的后面不能再加冒号了。不过加冒号和 “if ... then ...”、“for ... in ...”一样,都是属于照顾其他语言的用法,不是 Ruby 推荐的用法,不支持也好。

翻一下 Ruby 的更新列表,你会发现 Ruby 在早期语法确定以后,后续版本更新里鲜有重大变化,2.0 的关键字参数,也是在兼容原来语法的基础上增加的。Ruby 的每次更新重点几乎都是 VM、GC,今后还会有并发,并发其实还是和 VM 相关。
怎么说,家家有本难念的经吧,Ruby 自由的语法加上元编程的特性,让 Ruby 创造 DSL 的能力独领风骚,所以 Ruby 的开发团队不需要去纠结 Ruby 的语法,你改多了反倒浪费了 Rubist 的创造力,注意力可以全部放在如何让 Ruby 跑更快上面就可以了。

其他语言则是反过来,在实现了一个强大的 VM 之后,如何让语法更完善、开发效率更高就变成了他们的纠结的事情。最明显的例子莫过于 JS,拍黄片弱爆了,JS 才是世界上最好的语言(认真状)。
2015-08-02 14:56:55 +08:00
回复了 rondo9 创建的主题 Python python 各个版本之间为何差距很大?
@lilydjwg 那是 Vim 的事,Ruby 升级除了 1.8 升 1.9 那次,其他时候都是升完直接跑的,但是说到底 1.8 到 1.9 语法也没有出现不兼容,只是因为 1.9 增加了字符编码,1.8 的代码需要加上 encoding 信息而已
2015-08-01 19:24:53 +08:00
回复了 rondo9 创建的主题 Python python 各个版本之间为何差距很大?
@lilydjwg 求不黑 Ruby,我记得 Ruby 2.0 发布的时候,Matz 在演讲为什么要升级到 2.0 时提到一条, 2.0 完全兼容以前的代码,然后台上台下会心一笑
2015-08-01 12:34:44 +08:00
回复了 aitaii 创建的主题 问与答 请教一个起名的问题
单反 =_=
2015-07-31 16:48:55 +08:00
回复了 realpg 创建的主题 奇思妙想 谁能给电视机开发一个去广告功能。。。
我觉得分析音频更靠谱一些,最重要的是洗脑声波没法躲,现在一提起广告,我脑海里自动 loop “今年过节不收礼”,你们感受一下
因为每一台机器都可以是 JVM 的实体机,不管 x86_64 还是 ARM,执行的都是机器码,所以只要你用机器码实现一个 JVM 解释器,就可以运行 JVM 字节码了。
如果是硬件直接运行 JVM 字节码的话,我记得 11 区搞过硬件执行 Ruby 的机器,这是病,得治。
1  2  3  4  5  6  7  8  9  10  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2691 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 07:35 · PVG 15:35 · LAX 23:35 · JFK 02:35
Developed with CodeLauncher
♥ Do have faith in what you're doing.