用PHP蜘蛛做旅游数据分析
2020-12-31 11:43:21 阅读(191) 评论(0)
随着物质的改善,旅游业逐渐成为人们关注的焦点。炎热的国庆节刚刚过去。利用这种余热,我想很多人都想知道你通常去哪里玩,所以我花了10分钟写了一个小程序来收集黄蜂巢游记。当然,速度可以如此之快,这完全取决于著名的PHP爬虫框架phpspider。在国际惯例中,让我们看看如何编写代码。它被认为是抛砖引玉。^_^黄蜂巢不同于传统网站。由于并发量高,一些数据需要实时,如观众数量和拇指数量,Ajax在许多地方使用,Ajax对普通收藏家来说是一个大问题。观察了黄蜂巢网站,最终确定了收集路线:获得热门城市->在城市下获取游记列表->获取游记内容->提取游记标题、城市、出发时间等。,然后我们用三个步骤来实现它。。。1、获取热门城市:首先,我们应该收集这些热门城市。当我们点击页数时,我们发现他的数据是由Ajax加载的,最后一页是297,POST方法提交的参数如下:显然,这个page是页数。这里有一个问题。phpspider框架有URL重机制,POST只有一个URL,但query_string不影响POST数据。我们可以在后面添加page=1 |2|3.所以我们的代码可以这样写:设置列表页面规则:'list_url_regexes'=>array("http://www.mafengwo.cn/mdd/base/list/pagedata_citylistpage=d ",)入口回调函数入口所有城市列表:$spider->on_scan_page=function($page,$content,$phpspider)上面Ajax分页的末页是297页for($i=0;$i<=297;$i ){///全国热点城市$url="http://www.mafengwo.cn/mdd/base/list/pagedata_citylistpage={$i}";$options=array('url_type'=>$url,'method'=>'post','fields'=>array('mddid'=>21536,'page'=>$i,));////热点城市列表页URL入队列$phpspider->add_url($url,$options);}};2、获取热门城市下的游记列表。点击进入一个城市后,我们可以看到他下面的游记列表和上面一样,也是Ajax加载的。我们可以打开chrome的开发者工具,点击Network,然后点击分页获取Ajax的URL:和城市列表一样,它也是POST,参数如下:显然page是页数,当然,我们直接通过POST访问ajax地址:http://www.mafengwo.cn/gonglve/ajax.phpact=get_t..直接报错,他需要来路,综合以上,我们的代码可以这样写:首先,我们应该在on_start回调函数中添加来路URL$spider->on_start=function($phpspider){$phpspider->add_header('Referer','http://www.mafengwo.cn/mdd/citylist/21536.html');};和上面获得的城市列表一样,设置列表匹配规则:'list_url_regexes'=>array("http://www.mafengwo.cn/gonglve/ajax.phpact=get_travellist&mddid=d ",)然后在on___list_page回调判断,如果是第一页,将获得总页数,然后循环到队列中:preg_match('#共(.*)页#',$data_page,$out);for($i=0;$i<$out[1];$i ){$v=$page['request']['fields']['mddid'];$url="http://www.mafengwo.cn/gonglve/ajax.phpact=get_travellist&mddid={$v}&page={$i}";$options=array('url_type'=>$url,'method'=>'post','fields'=>array('mddid'=>$v,'pageid'=>'mdd_index','sort'=>1,'cost'=>0,'days'=>0,'month'=>0,'tagid'=>0,'page'=>$i,));/////游记列表页URL进入队列$phpspider->add_url($url,$options);}通过以上两个步骤,我们将所有热门城市下的游记列表放在队列中。接下来,我们将进行第三步,从这些列表中获取内容页面URL,然后提取内容。3、在on_获取热门城市下的游记列表list_page方法将获得列表页面的内容。从这些内容中,我们可以提取内容页面的URL///获取内容页面preg_match_all('##',$html,$out);if(!empty($out[1])){foreach($out[1]as$v){$url="http://www.mafengwo.cn/i/{$v}.html";////内容页URL进入队列$phpspider->add_url($url);}}接下来,我们将配置field提取内容页面字段'fields'=>array(//标题array('name'=>"name",'selector'=>"//h1[contains(@class,'headtext')]",'required'=>true,),/分类array('name'=>"city",'selector'=>"//div[contains(@class,'relation_mdd')]//a",'required'=>true,),///出发时间aray('name'=>"date",'selector'=>"//li[contains(@class,'time')]",'required'=>true,),)设计数据表:当然,我们也可以获得浏览量、收集、共享、顶部、游戏金额等,太多,方法相似。这个程序已经设计好了,总共不到200行代码。由于phpspider具有多进程采集功能,数据很快收集完成,总共超过7W。这个程序已经设计好了,总共不到200行代码。由于phpspider具有多进程采集功能,数据很快收集完成,总共超过7W。我们得到这些数据后能做什么?!从Top10旅游城市可以看出,云南是博主日夜思念的好地方。。。从五一节和国庆节期间旅游城市的比例可以看出,人们喜欢在五一节去西藏,但国庆节更喜欢青岛。嗯,这两个地方的博主都没去过,说他们受伤了~_~!接下来,让我们来看看今年北京和杭州的旅游旺季。我们可以看到,7月和8月会有更多的人去北京。此时,北京是最酷的。它既不热也不冷。博主曾在一年八月去过北京。他很舒服。让我们来看看杭州。我们可以看到,3月底到4月中旬是杭州的合适季节。当时,春天盛开,天气也很好。我听说太子湾公园每年都有樱花和郁金花展,非常漂亮,艾玛旅游病又犯了~_~!嗯,这篇文章到此结束。事实上,我想分析更多,比如收集热门路线、热门景点、热门图集和旅游路线的价格。最后,形成一个旅游应用程序。如果你有好主意,你也可以告诉我,我会收集他供你参考。最后,对源代码感兴趣的学生可以在github上搜索phpspider^
推荐阅读
猜你喜欢
最新文章

扫码二维码
立即领取《千元实战营销秘籍》
还可免费试用营销管理系统
*如有疑问,请随时拨打免费咨询热线:400-0033-166
服务时间:8:30-18:00
软件企业
认定号:川RQ-2018-0216
高新技术企业
认定号:GR201951001121

关注微信公众号
和10万中小企业共同成长

扫码下载APP
享全方位服务一触即达
Copyright © 2004-2022 万商云集(成都)科技股份有限公司 版权所有
蜀ICP备12001963号-2
川公网安备 51010402000322号

快速找产品
找一找哪款产品适合您?
咨询热线:400-0033-166
-


-
电话沟通
在线咨询
获取方案
下载APP
官方微信
扫码下载APP
全方位服务一触即达
关注万商云集
和10万中小企共成长
TOP

企业首选的数字选用平台






