怎么用php抓取网站小说

2023-03-16    分类: 网站建设

抓取小说内容,就是抓取网站的文字内容,和抓取图片等其他网站内容方法都是一样的,我们拿笔趣阁做个简单的例子:
https://www.52bqg.com/modules/article/search.php?searchkey=

这个是笔趣阁网站搜索书的地址searchkey= 后面加关键词,我们以关键词‘天下’为例,我们发送的时候也应该urlencode一下。
但是我发现我的发送参数和原网站的不一样 我的是:%E5%A4%A9%E4%B8%8B。

这个应该是编码问题我的是utf-8 查看笔趣阁发现是gdk,所以我们应该也要转成gdk编码的
urlencode(iconv('utf-8','gb2312',$BookName));//将utf转成gd3212

functionsearch_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;
}
获取内容后查找抓取的页面内容:

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

内容抓取到我们就要提取我们需要的内容:
比如这个目录搜索结果,可直接用正则提取这个样式下的内容,也可以更细致的提取每一个的内容
查看网站结果 发现 s1 (小说类型) ,s2(小说名-链接) ,s3(最新章节),

s4(作者),s5(更新时间),s7(状态)
用正则把每个内容都取出来:
$rule="/.*?<\/span>/is";//小说类型
$rule2="/.*?<\/span>/is";//小说名
$rule3="/.*?<\/span>/is";//最新章节
$rule4="/.*?<\/span>/is";//作者
$rule5="/.*?<\/span>/is";//更新时间
$rule6="/.*?<\/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参数就可以了;具体方法都是一样的,就是很繁琐,可以根据结构优化一下正则.

网页标题:怎么用php抓取网站小说
文章转载:https://www.cdcxhl.com/news/244889.html

成都网站建设公司_创新互联,为您提供用户体验静态网站品牌网站建设外贸建站网站维护微信小程序

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设