匹配某狗微信结果

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

需求:

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

第一次发现问题:

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

第一次解决办法

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

第二次发现问题

实时的过程中发现了一个问题,也跑通了,但是某狗的页面关键词被标点符号分割了,而且还被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);

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

原文地址:https://www.cnblogs.com/chenliuxiao/p/12852318.html