免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7716 | 回复: 11
打印 上一主题 下一主题

ruby做的网页抓取?与python 比做这样的优势是? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-02-22 09:27 |只看该作者 |倒序浏览
  1. <?php
  2. header("Content-type: text/html; charset=utf-8");
  3. @set_time_limit(0);

  4. error_reporting(E_ALL);

  5. $cookie_file = tempnam("./temp","cookie") or die('cookie create failed');
  6. $post_url="http://www.jqw888.com/user.php";
  7. $post="username=request&password=123456&act=act_login&back_act=user.php&submit=";
  8. $login=curl_init($post_url);
  9. curl_setopt($login,CURLOPT_HEADER,0);
  10. curl_setopt($login,CURLOPT_RETURNTRANSFER,1);
  11. curl_setopt($login,CURLOPT_POST,1);
  12. curl_setopt($login,CURLOPT_COOKIEJAR,$cookie_file);
  13. curl_setopt($login,CURLOPT_POSTFIELDS,$post);
  14. $data=curl_exec($login);
  15. curl_close($login);

  16. $urls = file('./url-list.txt');//璇诲彇URL鐨勬枃浠?
  17. $regex_name = '/<td.*?>濮撳悕锛?\/td>\s*?<td.*?>(.*?)<\/td>/i';
  18. $regex_phone= '/<td.*?>鑱旂郴鐢佃瘽锛?\/td>\s*?<td.*?>(.*?)<\/td>/i';
  19. $fp = @fopen('./user-list.txt','w');//鍐欏叆淇℃伅鐨勯棶棰?
  20. $i = 1;

  21. foreach($urls as $url){
  22.         $tmp_name = $tmp_phone = array();
  23.         if(trim($url) == 'END')break;
  24.         $cont=curl_init(trim($url));
  25.         curl_setopt($cont,CURLOPT_HEADER,0);
  26.         curl_setopt($cont,CURLOPT_RETURNTRANSFER,1);
  27.         curl_setopt($cont,CURLOPT_COOKIEFILE,$cookie_file);
  28.         $contes=curl_exec($cont);
  29.         curl_close($cont);
  30.         preg_match_all($regex_name,$contes,$tmp_name);
  31.         preg_match_all($regex_phone,$contes,$tmp_phone);
  32.         $info = $i.','.$tmp_name[1][0].','.$tmp_phone[1][0]."\r\n";
  33.         echo nl2br($info);
  34.         fwrite($fp,$info);
  35.         flush();
  36.     ob_flush();
  37.     sleep(1);
  38.         $i++;
  39. }
  40. fclose($fp);


  41. ?>
复制代码
请问这是用ruby做的网页抓取吗?好像不用装什么东西就直接能运行。高手帮忙解释下吧,最好能标出哪句是ruby。我很菜,没学过ruby和python ,想学一门的,苦于不知如何选择!!!

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
2 [报告]
发表于 2012-02-22 10:39 |只看该作者
01.  <?php
       ...
47. ?>

论坛徽章:
0
3 [报告]
发表于 2012-02-22 15:33 |只看该作者
回复 2# zhlong8


    这都是ruby吗?  
    好吧! 谢谢啦!

论坛徽章:
3
寅虎
日期:2013-11-27 07:53:29申猴
日期:2014-09-12 09:24:152015年迎新春徽章
日期:2015-03-04 09:48:31
4 [报告]
发表于 2012-02-22 16:04 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
5 [报告]
发表于 2012-02-23 11:29 |只看该作者
我怀疑这是标题党, 我们都被楼主忽悠了

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
6 [报告]
发表于 2012-02-23 11:47 |只看该作者
难道是因为我的回答返回的是个真值,下次我一定回答 nil

论坛徽章:
0
7 [报告]
发表于 2012-02-23 23:47 |只看该作者
回复 4# Sevk


    怎么假了呢?问题代表个人

论坛徽章:
0
8 [报告]
发表于 2012-02-24 08:49 |只看该作者
to feibuhui:
还是我来挑明了说吧。
你的代码开头:
  1. <?php
复制代码
这不是都说明白了嘛。是PHP,PHP,PHP啊。既不是Ruby,也不是Python啊,是PHP,PHP,PHP啊 :<
抱歉,实在是憋不住了。

论坛徽章:
0
9 [报告]
发表于 2012-02-26 12:53 |只看该作者
回复 8# bugbugbug3


    因为这代码作者说是要用python 做。以为ruby可以嵌套在 网页中。这样思考有什么不对?结果被鄙视!

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
10 [报告]
发表于 2012-02-28 00:03 |只看该作者
这样思考
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP