V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  gouchaoer  ›  全部回复第 56 页 / 共 61 页
回复总数  1205
1 ... 48  49  50  51  52  53  54  55  56  57 ... 61  
2016-12-03 22:59:57 +08:00
回复了 Magician 创建的主题 PHP php 7.1 发布啦 下午作死试了下 又回到 7.0 13
@skyboy 像 yaf , swoole 这种肯定是最快的,但是它们基于 php-cli 开发和维护没有跑在 PHP-FPM 中的一般的框架方便,小厂还是推荐一般框架。 symfony 是企业级的框架,做了很多很棒的组件; yii2 在速度和封装上也非常棒,我个人用 yii2 比较多, thinkphp5 刚出来我看了一下源码,理念基本上和 yii2 是差不多的。你说得 restful 路由如果指的这种的话: http://www.yiichina.com/doc/guide/2.0/rest-quick-start 。。。我个人感觉 restful 太理想化了,很多 api 就用一般的 controller 就够了,看个人喜好了。
2016-12-03 10:04:18 +08:00
回复了 Magician 创建的主题 PHP php 7.1 发布啦 下午作死试了下 又回到 7.0 13
@aksoft
@yoke123
只是我个人试用起来有 3 点觉得不太好,第一是性能实在太差了: https://github.com/kenjis/php-framework-benchmark 。。。 helloworld 也能反应很多东西,实际上的 http 调用大多数走缓存。。。第二个就是为了优雅的理念和优美啥的过度封装,请求包含进总线 closure ,我用 xdebug 无法单步调试一次 http 请求,很多概念。。。。然而我是实用主义者,闻到 bad smell 后就撤了

当然了 laravel 很会宣传也很流行, star 也多,库也多,很多人认同其理念吧。。。。。
2016-12-02 23:20:33 +08:00
回复了 Magician 创建的主题 PHP php 7.1 发布啦 下午作死试了下 又回到 7.0 13
@sagaxu php7 又不是给旧的应用准备的,能升级的只有大厂才有那个钱。 php7 新加的特性不多,总体再往静态类型靠拢,方向是对的。
比起 php 本身,我觉得 laravel 这种才不适合 php 定位
2016-12-02 19:36:19 +08:00
回复了 Magician 创建的主题 PHP php 7.1 发布啦 下午作死试了下 又回到 7.0 13
我打赌 php7.0 升级到 7.1 的人会很少很少,因为 7.1 性能没有提高,新的 feature 大部分人也不需要,也就是说 7.1 的存在意义只是每隔一年总的放出个新版本而已。。。
2016-12-02 10:27:15 +08:00
回复了 twogoods 创建的主题 程序员 你们公司一般都用哪个 RPC 框架还是自己的轮子?
@sagaxu 好吧,我一直以为 yaf 是运行在 php-fpm 内部的,那 yaf 本质上是和 swoole 和 yar 一样是 php-cli 的应用了……我小厂还是老实 yii 吧,流量达不到那么大,驾驭不了
2016-12-02 09:31:21 +08:00
回复了 twogoods 创建的主题 程序员 你们公司一般都用哪个 RPC 框架还是自己的轮子?
@sagaxu
@orderc
内部系统那也撑不住大流量啊,你想那只是一个单进程 php-cli ,而 php-cli 长期驻内存稳定性不好说。

而且 php-cli 的 socket 做的 server , workerman 、 swooole 之类的,性能并不一定比 php-fpm 的强:

http://rango.swoole.com/archives/254

所以说就算本地内部使用,你没 log ,没并发,没负载均衡,没阻塞,没失败从启,那用 yar 之类的 rpc 我也没看到啥优势。。。无非就是函数调用更接近语言本身,还有就是传输的内容压缩过,但是这 2 点根本不是痛点,所以依然搞不懂 rpc 的优势在哪里
2016-12-01 21:49:07 +08:00
回复了 twogoods 创建的主题 程序员 你们公司一般都用哪个 RPC 框架还是自己的轮子?
用 yar 的我问一下,我一直不明白 rpc 调用对 http api 的优势在哪里。。。。
你们觉得 yar 的那个 php-cli 开着一个命令行的 php server 靠谱么,既然 yar 也是用的 http ,那速度和我直接正常的写个 http api 没有区别啊,而且 http api 还更成熟
2016-12-01 18:19:32 +08:00
回复了 wdhwg001 创建的主题 程序员 妈的,这是我这辈子见过的最恶心的代码。
缺乏类型的脚本语言就这样咯
2016-12-01 15:58:53 +08:00
回复了 gouchaoer 创建的主题 PHP php 的爬虫经验分享
@towser 单机 selenium 驱动多个有界面浏览器,并且不同的浏览器实例可以定制特性(比如代理、 user-agent 、图片加载,静态资源缓存之类的)
2016-12-01 14:27:22 +08:00
回复了 gouchaoer 创建的主题 PHP php 的爬虫经验分享
@towser 关于你的第一点,我认为这是不对的,在长期运行的 php-cli 中老是有人说用 unset 及时释放变量来回收内存,这是典型的 micro-optimization 是邪恶的,变量超出了生存范围会被自动回收的。我们知道 php 变量回收是简单的基于引用计数, php 自从 5.3 开始解决了循环引用,也带来了一些负面影响( https://github.com/composer/composer/commit/ac676f47f7bbc619678a29deae097b6b0710b799),但是鸟哥也说了 php 的默认垃圾回收已经基本上能处理非极端情况,所以我个人认为在 php-fpm 中和 php-cli 中都没必要去 unset 。比如老有人说`$len=count($arr);for($i;$i<$len;$i++){balabla}`比`for($i;$i<count($arr);$i++){balabla}`强,的确要强一点,但是我们知道 php 的数组回记录其大小,也就是说 count($arr)是 O ( 1 )的,两种代码的复杂度都是 O ( N ),没有本质区别,后者还要紧凑一点, micro-optimization 没必要。

另外看来 chrome 作为一个有界面浏览器比 firefox 好,不知道你 chrome 有没有单机并发以及缓存定制之类的? firefox 下又许多坑现在我都没法很好的解决。
2016-12-01 11:11:14 +08:00
回复了 gouchaoer 创建的主题 PHP php 的爬虫经验分享
@mrzhao 有啥问题可以直接这里说或者到我博客下留言,我比较倾向于把问题放到大家都看的到底地方


@Clarencep 其实 dom 选择器捡个顺手的用就 ok 了,没啥区别。。。至于速度,驱动浏览器当然更慢,不过有一些技巧可以使之做到和 httpclient 速度差不多。。。这个我以后可能回分享一下自己的经验


@ctftemp 这种就是需要高度定制的地方了,比如有 url 作为区分的、有关键字作为区分的,把区分字段加上索引每次爬的时候去查一下看爬过没,这种比较简单粗暴,我目前有个长期爬虫库里 7kw 用这种方法也没啥问题。。。。。
2016-11-30 22:28:14 +08:00
回复了 gouchaoer 创建的主题 PHP php 的爬虫经验分享
@mrgeneral 我完全是为了满足厂里的业务需要,现在这样也够用了,其实单纯的怎么更好的爬数据不是我的工作的重点,我精力在于和反爬虫较量上面,这里面很多东西就不好说太细了。所以目前暂时没有折腾轮子的想法,感谢邀请。

至于说 php 的性能,在脚本语言里许多场景下下, php 数一数二的信心还是有的, php 本来就把性能和兼容看的很重: https://pages.zend.com/rs/zendtechnologies/images/PHP7-Performance%20Infographic.pdf
2016-11-30 19:12:42 +08:00
回复了 gouchaoer 创建的主题 PHP php 的爬虫经验分享
@sagaxu 关于这个常识没啥好说的了……其实只要是按照异步(毕竟底层都用了各种差不多的事件库)来写各个语言的性能跑出来差别不会太大,而且也没必要迷信用静态类型语言,论异步的 http 性能,在某些场景下 php 都是可以打 Go 的:

韩天峰-Rango
11 月 7 日 10:17 来自 微博 weibo.com
PHP7+Swoole 的 http 服务器和 Go 的 Http 服务器,在我的电脑上进行基准测试, Swoole 的性能总是 Go 的 2 倍。
https://github.com/swoole/swoole-src/blob/master/benchmark/http.php
https://github.com/swoole/swoole-src/blob/master/benchmark/http.go

至于为啥不用静态类型写,我个人干活也是比较喜欢静态类型的,因为强类型写出来更鲁棒性能更好,用脚本语言纯粹是写起来快,尤其是爬虫这种全是内容处理+细节处理而且需要常常改的东西
2016-11-30 18:26:32 +08:00
回复了 gouchaoer 创建的主题 PHP php 的爬虫经验分享
@sagaxu IO 密集型的工作用异步是常识啊……
grequests 我之前就研究过,你去读读它的只有 150 行的源代码, https://github.com/kennethreitz/grequests ,质量如何以及这个 httpclient 好不好用,我觉得和它那么多的 star 不相配
2016-11-30 17:39:03 +08:00
回复了 gouchaoer 创建的主题 PHP php 的爬虫经验分享
@sagaxu httpclient 中非常重要的异步并发请求功能 requests 没有, py 的几个支持异步的 httpclient 都不太好用(我们这边有个 py 爬虫需要异步并发,我研究了一段时间的这个东西)。。。

至于 selenium 客户端,用啥语言都差不多, py 调用浏览器不需要单独开一个命令行的 stand-alone 的 java 的 selenium 服务端这点比较方便。。。。 php 需要单独开一个命令行的 stand alone 。。。不过论代码质量, facebook 的 client 质量不错,很强调强类型,不过没有文档需要自己去看源码。。。。

说 php 是最好的语言只是想起个比较吸引眼球的题目而已, php 的优缺点和 py 的优缺点场景不一样的话体现也不一样,其实最好的语言就是你最熟悉的。

我喜欢 windows ,喜欢 eclipse ,讨厌 vim ,对屏幕 /键盘完全无所谓。。。。
2016-11-30 17:21:30 +08:00
回复了 gouchaoer 创建的主题 PHP php 的爬虫经验分享
@cenxun resque 的代码我研究过,我没有用的原因还是过度封装,直接用 redis list 的 blocking pop 足够了
2016-11-30 15:47:15 +08:00
回复了 gouchaoer 创建的主题 PHP php 的爬虫经验分享
@changwei 为了服务于 php-cli 的多线程吧,毕竟多线程支持都做了……一般大家都选 NTS ,没有多线程支持的性能要好点

至于 java ,你要知道它是一门工业级的静态类型语言, jvm 是非常强大的 runtime ,原生支持多线程是必然的。 php 整个版本区分是因为 ZTS 版本性能更低,为了性能。。。

python 的多线程。。。我用 py 不是很多。。。。


@changwei 其实爬虫的难点在于别人反爬虫,具体去爬的业务没啥难度也没啥好说的。。。你的这个需求 php 下单进程异步应该可以吧? http://docs.guzzlephp.org/en/latest/quickstart.html#concurrent-requests
你对并发感兴趣的话我有 2 篇博客你可以参考一下,写的比较乱:
http://qsalg.com/?p=423
http://blog.icekredit.com/?p=40
2016-11-30 13:51:08 +08:00
回复了 gouchaoer 创建的主题 PHP php 的爬虫经验分享
@nilai 贴代码多没意思啊,这个东西也不复杂我也就写了个基类 1k 行也没啥技术含量,简单粗暴的
2016-11-30 13:48:12 +08:00
回复了 gouchaoer 创建的主题 PHP php 的爬虫经验分享
@scnace selenium 和 phantomjs 打算下次分享,里面有的几个坑很有趣的(其中有一个坑让我差点不干了),这块我透漏一下我 i7 的 cpu 能跑 100 个 phantomjs 进程(长期稳定)
2016-11-30 13:38:53 +08:00
回复了 gouchaoer 创建的主题 PHP php 的爬虫经验分享
@helloccav 其实 html 的元素是为前端准备的,前端用 jquery 之类的 dom 选择器那爬虫用同一套工具肯定是最优的。。。正则我更多的是用在拿到元素文本内容后提取关键字啥的。。。而且在比较复杂的爬虫里面,光是不同的 dom 选择操作就几十上百个,每天还得盯着人家 html 变化没,变了赶紧更新代码,用正则会绝望的
1 ... 48  49  50  51  52  53  54  55  56  57 ... 61  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2532 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 20ms · UTC 15:28 · PVG 23:28 · LAX 07:28 · JFK 10:28
Developed with CodeLauncher
♥ Do have faith in what you're doing.