zoukankan      html  css  js  c++  java
  • 匹配某狗微信结果

    好久没更了,今天记录下爬虫遇到问题解决办法的思想。

    需求:

    前两天需求根据关键字去某站搜索,最终获得条数。

    第一次发现问题:

    之前写过,都跑通了,但是最后发现结果不是特别的严谨,某狗网站会根据关键词分割搜索相应的内容,就导致了结果条数虚假。

    第一次解决办法

    当时发现问题之后,想了一个办法。匹配搜索字符串在当前页面出现的次数。

    第二次发现问题

    实时的过程中发现了一个问题,也跑通了,但是某狗的页面关键词被标点符号分割了,而且还被em标签独立出来(为了加突出样式)

    这个问题想了好多种办法,我来一一描述,

    1、对搜索字符串进行分割,取第一句,或者,最长的句子(考虑,搜索内容标点符合不确定性及长度不确定性就放弃)

    2、替换掉结果页中em标签(但发现,某狗会自动转化英文符号,考虑不确定性因素太大,放弃)

    3、后来果断啥也不替换直接,提取所有中文,这样就没了杂七杂八的问题,果然还是单纯的好骗。

         preg = "/[x{4e00}-x{9fa5}]+/u";  //正则所有中文
            preg_match_all($preg,$str,$matches);  //结果页格式化
            preg_match_all($preg,$txtjt,$matches_txtjt); //搜索关键词格式化
            $geshi_str = implode($matches[0]);  //拼接
            $geshi_txtjt = implode($matches_txtjt[0]); //拼接
    
    
            echo preg_match_all('/'.$geshi_txtjt.'/',$geshi_str,$match2);   //获得匹配次数
            var_dump($match2);

    根据这个匹配次数的多少选择是否录用结果,提高了严谨性

  • 相关阅读:
    java selenium (九) 常见web UI 元素操作 及API使用
    java selenium (六) XPath 定位
    java selenium (八) Selenium IDE 用法
    java selenium (五) 元素定位大全
    一个使用CSocket类的网络通信实例
    揭开链接器的面纱(中)
    揭开连接器的面纱(上)
    深入理解程序的结构
    调试利器GDB(下)
    调试利器GDB(上)
  • 原文地址:https://www.cnblogs.com/chenliuxiao/p/12852318.html
Copyright © 2011-2022 走看看