PHP CURL 爬取大众点评app中的点评

  • 先在大众点评APP找一个想爬取的点评链接
  • 处理链接
  • 配置抓取点评的CURL方法
  • 查看是否爬取到了数据
  • 处理爬取回来的数据

先在大众点评APP找一个想爬取的点评链接

点评链接: 四颗星,Las Tapas还是很赞的,值得推荐! https://m.dianping.com/ugcdetail/732363063?sceneType=1&bizType=1&utm_source=ugcshare
下面就根据这个链接来举例爬取吧。

处理链接

//将文字部份去掉
preg_match('/http(.*?)ugcshare/i', $url, $um);
$url = $um[0];
//更改sceneType的状态值
$url = str_replace('sceneType=1', 'sceneType=0', $url);

注意:这里讲解一下为什么要替换sceneType的状态值
sceneType=1的时候
抓取的是点评外面的小图(但小图是没有大众点评水印的)
sceneType=0的时候
抓取的是点评的原图(但是加了水印的原图)
不过水印的问题可以解决。

配置抓取点评的CURL方法

其实抓取大众点评并不难。但没有难点的话我也就没必要写了。
抓取大众点评难点有两个
(1)难点一 需要解决验证的问题。
经常抓取点评时,会出现安全验证。当然如果是在本地抓着玩,那没什么问题,直接使用本地浏览器去解除安全验证就可以了。
但是如果你需要上传到线上服务器上。那你必须的使用IP代理了。当然,有钱任性,可以去花钱搞个IP代理。如果不想花钱那就按照我以下的方式,代理线上的IP把。当线上抓取失败的时候,就代理线上IP在本地访问一下大众点评网页然后手动解除验证就可以了。
我呢好学如果要是有其它方法可以跳过这个验证,并且不需要花钱。可以教教我。
(2)难点二 就是匹配数据了
其实也不叫难点,既然你要爬取点评,那理所当然你就得去匹配数据呀。当然关于抓取的点评图片是有水印的。只要认真发现。你可以解决的。

在Linux里安装Tinyproxy用于代理服务器
安装命令:yum install tinyproxy

然后配置tinyproxy:
需要注意,这里需要以管理员的身份打开
首先需要先找到tinyproxy.conf配置文件目录,这里我是以我的安装目录打开的
sudo vim /etc/tinyproxy/tinyproxy.conf

Allow:
输入允许代理的IP
百度ip然后就能得到自己的IP。就是指线上允许这个IP代理自己。
设置好后保存退出。在重启tinyproxy
sudo service tinyproxy restart

$header = array("User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.2 Safari/605.1.15","Connection: keep-alive","Cache-Control: max-age=0","Sec-Fetch-Mode: navigate","Sec-Fetch-Site: cross-site","Host: m.dianping.com","Accept-Language: zh-CN,zh;q=0.9","Sec-Fetch-Mode: navigate","Sec-Fetch-Site: none","Upgrade-Insecure-Requests: 1",);$ch = curl_init();//这里是代理线上的服务器IP以及端口。如果是在本地可以直接注释掉curl_setopt($ch, CURLOPT_PROXY, '129.133.22.111');curl_setopt($ch, CURLOPT_PROXYPORT, '8888');curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($ch, CURLOPT_HEADER, false);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_REFERER, $url);curl_setopt($ch, CURLOPT_HTTPHEADER, $header);curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);curl_setopt($ch, CURLOPT_TIMEOUT, 60);$result = curl_exec($ch);curl_close($ch);

查看是否爬取到了数据

处理爬取回来的数据

处理数据这模块就自己来把
我这里展示一下结果就可以了

注意:
文中的小红框是大众点评app给文字加密的文字。我尝试着去解决过,虽然解决了,但最后发现。加密的woff文件里面的字相对应的编码每天都在变。最后考虑到成本就没必要去解决了。只能麻烦抓取他的人自己动手改了。

我觉得还是把抓取点评内容的图片处理方式分享出来把。毕竟在图片这里我确实是踩了几个坑了。

//内容图片preg_match('/\<div class\=\"image\-wrapper\" style\=\".*?\"\>(.*?)\<div class\=\"seed\-author\-wrap feed\-author\"\>/is', $result, $img_arr);if ($img_arr[0]) {preg_match_all('/src=\"(.*?)\"/i', $img_arr[1], $src_arr);foreach ($src_arr[1] as $key => $value) {preg_match('/http(.*?)LPWwuxXKbtEwWMeZjN/i', $value, $arr);if (!$arr) {preg_match('/http(.*?)dZTESHGw7y5Zx2ro/i', $value, $arr);}if ($arr[0]) {$src_arr[1][$key] = $arr[0] . '.jpg';} else {preg_match('/http(.*?)\.jpg/i', $value, $arr);if ($arr[0]) {$src_arr[1][$key] = $arr[0];}}}} else {preg_match_all('/\<div class\=\"seed\-img\-cover\-wrap seed\-img\-display\-cover\"\>\<img class\=\"seed\-img\-src\" src\=\"(.*?)\" alt\=\"\"\/\>\<\/div\>/i', $result, $img_arr);}print_r($src_arr[1]);die;

提示:如果有问题,或者处理不来的,我这里有源码,留言找我。

PHP CURL 爬取大众点评app中的点评相关推荐

  1. Python,requests爬虫,使用代理爬取大众点评(含爬取结果。。。在文末)

    由于在工作中,客户需要大众点评的行业数据,因此本人使用Python对大众点评网站进行了爬取,虽然在爬取之前就想好了可能会遇到的坑,但是没想要从坑中爬出来这么难.本次大众点评爬虫代码编写耗时一个月.也算 ...

  2. 爬取大众点评数据的血泪史

    公司最近致力于实现餐饮行业的AI发展模式,领导希望采集一些餐饮数据来提供理论支持.所以没多少头发的我 ,被喊过来做数据收集. 想到餐饮数据的收集,第一反应是去爬取美团/大众点评的数据,对比了下美大众点 ...

  3. python爬虫实战---爬取大众点评评论

    python爬虫实战-爬取大众点评评论(加密字体) 1.首先打开一个店铺找到评论 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多 ...

  4. python爬取大众点评数据_python爬虫实例详细介绍之爬取大众点评的数据

    python 爬虫实例详细介绍之爬取大众点评的数据 一. Python作为一种语法简洁.面向对象的解释性语言,其便捷性.容易上手性受到众多程序员的青睐,基于python的包也越来越多,使得python ...

  5. 爬取大众点评页面数据教程,图片文字如何爬取

    大众点评的商家地址和详细分类,居然是用svg图形展示的文字,哇,真是用心良苦,为了反爬,可谓是脑洞大开啊,图形文字.滑块验证码.封ip,全都用上了,真是让人头疼.不过正所谓道高一尺,魔高一丈,没有达不 ...

  6. 反反爬虫之--爬取大众点评--店铺名称、详址、经纬度、评价人数、平均消费等信息

    every blog every motto: Let's be loyal to our ideals, let's face reality-Chegwara 前言: 知难不难! 折腾了几天爬取大 ...

  7. 爬取大众点评美食店铺信息,解密_token的思路

    爬取大众点评美食店铺信息,解密_token的思路 先随意进入一个店铺的链接,例如:http://www.dianping.com/shop/127857802 进入之后打开控制台,进入之后选择xhr, ...

  8. Scrapy简易爬取大众点评美食

    Scrapy简易爬取大众点评美食 最近快过五一了,对于部分人来说可定是旅游出去吃吃喝喝咯,那就来个爬取美食的吧,主要还是半个多月没写与工作无关的代码了,快生疏了,再不写写估计又还回去了 效果图 总共十 ...

  9. 爬取大众点评南京美食

    爬取大众点评南京美食的数据,保存在'D:\\数据\大众点评南京美食.csv'中. import requests from bs4 import BeautifulSoup import csv im ...

最新文章

  1. Redis 笔记(09)— 过期时间 expire(设置、查询、取消过期时间)
  2. ironbot智能编程机器人_视频 | 多模式编程机器人,“程序猿”培养从小抓起
  3. 单个APP接入多个微信支付宝支付的一种解决方案
  4. 贪心算法之——喷水装置二(nyoj12)
  5. 别人家SDK的设计模式——Android Retrofit库源码解读
  6. Protobuf序列化的原理
  7. cif文件服务器搭建,在linux下搭建NFS服务器实现文件共享
  8. Dell’Oro 5年期数据中心报告预测25G/100G端口速率市场快速上升
  9. BAM MATLAB,最新DEA模型:RAM模型、BAM模型、加权SBM模型、SBM方向性距离模型计算...
  10. 莫名其妙的解决了MagicDraw中文问题
  11. 有道词典 linux 无法运行,ubuntu16.04安装不上有道词典的解决办法
  12. php记录sql语句,sql语句记录
  13. java 引入本地dtd,java解析xml文件读取本地dtd或者忽略dtd
  14. 手机时钟软件推荐,创意时钟APP介绍
  15. 作为一个大学生如何自学计算机编程
  16. Linux Centos装机全过程总结,小白入(持续更新中...)
  17. Web3.0峰会上IPFS最新消息利好不断
  18. 突破硬件瓶颈(二):存储架构和协议瓶颈
  19. 伽卡他卡如何关闭,并恢复任务管理器
  20. python selenium自动化,Firefox自动下载文件以及浏览器相关配置

热门文章

  1. 个人银行管理系统2(C改Java)
  2. 知乎--您的账号由于OTHER暂被限制使用
  3. C语言设计函数求最大公约数,C语言程序设计课程设计--编写函数求取两个整数m,n的最大公约数和最小公倍数.doc_在线文库www.lddoc.cn...
  4. [Objective-C语言教程]Posing(29)
  5. Python为何如此受欢迎?你真的需要学习Python嘛?学了之后能做些什么?
  6. python3 BIF里的并发与并行处理昝(IPC ITC)=LTS
  7. merge request
  8. 【JAVA工作项目日报管理开发-王大师开发-阮大师指导-鑫哥建议-国庆哥教导-项目组成员使用】
  9. SpringCloud微服务的概念介绍
  10. OpenGL利用鼠标、键盘分别实现那些绘图软件中的橡皮筋技术