OETY欧亿|Home

135-2716-3909
网站建设资讯详细

怎么用php抓取网站□□小说

发表日期:2026-07-04 11:05:45   作者来源:旺   浏览:8153   标签:php,网站小说    
抓取小说□□内容,就是抓取□□网站的文□□□□字内容,和抓取图□□片等其他□□□□网站内容□□□□方法都是◣一样的,我们拿笔□□□□趣阁做个□□□简单的例□□□子:
https://www.52bqg.com/modules/article/search.php?searchkey=
这个是笔趣阁网站搜索书的地址searchkey= 后面加关键词,我们以关键词‘天下’为例,我们发送的时候也应该urlencode一下。

1

 
但是我发现我的发送参数和原网站的不一样 我的是:%E5%A4%A9%E4%B8%8B。
 

 
这个应该□□是编码问□□□□题我的是utf-8 查看笔趣◤阁发现是gdk,所以我们·应该也要◇转成gdk编码的

3

 
 
urlencode(iconv('utf-8', 'gb2312', $BookName));//将utf转成gd3212
 

 
 
 function search_book($bookName){
      //  $url_book='https://www.52bqg.com/modules/article/search.php?searchkey='.urlencode($bookName);
       $url_book='https://www.52bqg.com/modules/article/search.php?searchkey='. urlencode(iconv('utf-8', 'gb2312', $bookName));
 
      //dump($url_book);
       $ch = curl_init();
        $this_header = array(
        "content-type: application/x-www-form-urlencoded; 
        charset=gbk"
        );
        curl_setopt($ch,CURLOPT_HTTPHEADER,$this_header);//定义头部
        curl_setopt ($ch, CURLOPT_URL,$url_book);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,20);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //必须添加,不加访问不了https( ssl证书)
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//同上
        $err=curl_error($ch);
        $res = curl_exec($ch);
        dump($res);exit;
        curl_close($ch);
       
        return $res;
}
 
获取内容后查找抓取的页面内容:
 

4

 
发现乱码了,所以还是编码问题要将gdk转回utf-8:
$res=mb_convert_encoding($res, 'UTF-8', 'UTF-8,GBK,GB2312,BIG5');//使用该函数对结果进行转码
 
内容抓取到我们就要提取我们需要的内容:

比如这个□□□目录搜索□□结果,可直接用□□□正则提取□□□□这个样式□□□下的内容,也可以更□□□□细致的提□□□取每一个□□□的内容
查看网站结果 发现 s1 (小说类型) ,s2(小说名-链接) ,s3(最新章节),
s4(作者),s5(更新时间),s7(状态)

 
用正则把每个内容都取出来:
$rule="/<span class=\"s1\".*?>.*?<\/span>/is";//小说类型
        $rule2="/<span class=\"s2\".*?>.*?<\/span>/is";//小说名
        $rule3="/<span class=\"s3\".*?>.*?<\/span>/is";//最新章节
        $rule4="/<span class=\"s4\".*?>.*?<\/span>/is";//作者
        $rule5="/<span class=\"s5\".*?>.*?<\/span>/is";//更新时间
        $rule6="/<span class=\"s7\".*?>.*?<\/span>/is";//状态
        $url_rule='/(?<=href=\")[^\"]+(?=\")/';//书籍链接
        $news_html='';
         /*获取内容*/
        preg_match_all($rule,$html,$news_html['type']);
        preg_match_all($rule2,$html,$news_html['name']);
        preg_match_all($rule3,$html,$news_html['news']);
        preg_match_all($rule4,$html,$news_html['author']);
        preg_match_all($rule5,$html,$news_html['time']);
        preg_match_all($rule6,$html,$news_html['status']);
 
这是我们自己的前端展示的内容.

 
获取数据□□□□分页  后面加上page参数就可□□□以了;具体方法★都是一样□□的,就是很繁□□□□琐,可以根据□□□□结构优化△一下正则.

 
 
然后上面◇获取了书□□籍的链接,就可以用▽同样的流□□□程获取书•籍的封面,章节等信□□息。所以想白□□嫖又不想□□看垃圾广♦告还是要□□□□花的时间□□去弄的,后期有时□□□间可以将□□□数据记录□□□□在自己的□□□数据库.防止网站改版被封.
如没特殊注明,文章均为OETY欧亿原创,转载请注明来自https://www.hd-banhen.com/news/5695.html