• 最近做的项目,总结一下。


      学了挺久,发现自己的理论基础确实很薄弱,基本功没有打好,就一直开发新东西,虽然能用,但是在资源和效率方面没做好。还有,现在做的东西,要用到的知识点太少了,很多以前学的,慢慢忘记了。很怀疑自己的记忆力,可是却又无从改变,只能写写博客,多记笔记了。

      最近,刚做了个爬58网站的php爬虫,虽然效率没有python快,但是基本够用了。用到的技术有,ajax , curl 还有image的画布创建加水印的一些函数。

      由于在抓包的时候,需要控制cpu的使用,所以不能连续抓包,只能够采用分段抓取的策略。这里,我用了ajax 和settimout() ,来定期地发送抓取请求到自己的服务器,触发抓取操作(间隔时间为(10s)。

      curl是模拟浏览器,直接发送http请求,获取返回数据。其中配置方面:

    $Curl=curl_init();//实例化cURL
    curl_setopt($Curl, CURLOPT_URL, $url);//初始化路径
    curl_setopt($Curl, CURLOPT_RETURNTRANSFER, 1);//0获取后直接打印出来
    curl_setopt($Curl, CURLOPT_HEADER, 0);//0关闭打印相应头,直接打印需为1,
    $result=curl_exec($Curl);//执行一个cURL会话
    curl_close($Curl);//关闭cURL会话

    在curl的配置上,还是很多记不住的东西。还要在研究一番。

      对于抓取的包该这么处理好呢?如果用正则的话,信息量太大,会相当较麻烦,这里我用到了一个php解析DOM 树的框架  simple_html_dom 。它是将所有的html标签,类,id,直接转化成数组的形式,原理和操作跟Jquery相似。效果挺好的!

    $houseCon = curl_get_content($houseUrl);
    $houseHtml = str_get_html($houseCon);
    
    $houseHtml->find('.tel-num',0)->plaintext;
    $houseHtml->find('article',0)->innertext;
    $houseHtml->find('.broker_sec_left img',0)->src;
    $houseHtml->clear();
    unset($houseHtml);

    对于图片的处理,用到的函数

    $dst = imagecreatefromstring(file_get_contents($imgDst));
    $src = imagecreatefromstring(file_get_contents($imgSrc));
    
    list($src_w, $src_h) = getimagesize($imgSrc);
    list($dst_w, $dst_h, $dst_type) = getimagesize($imgDst);
    
    imagecopy($dst, $src, $dst_x, $dst_y, 0, 0, $src_w, $src_h);//加上水印

    之后就是输出图片

    整个过程,差不多就这样。

  • 相关阅读:
    数字索引分页
    经典语录 cloud
    日常交际技巧经验总结100句(大全) cloud
    成大事必备9种能力、9种手段、9种心态 cloud
    浅谈服务器虚拟化
    使用mysqlard监控mysql服务器性能
    CentOS服务器iptables配置
    如何编写好的应用程序
    电子杂志新出路
    泸州老窖集团有限责任公司电子化职能化和网络化的管理新模式
  • 原文地址:https://www.cnblogs.com/hyh123/p/5282196.html
Copyright © 2020-2023  润新知