php利用simple_html_dom类,获取页面内容,充当爬虫角色
来源:互联网 发布:sql降序查询 编辑:程序博客网 时间:2024/06/06 05:06
php脚本扮演爬虫的角色,可能大家第一时间想到可能会是会正则,个人对正则的规则老是记不住,表示比较难下手,今天工作中有个需求需要爬取某个网站上的一些门店信息
无意间在网上看到一个比较好的类库叫:simple_html_dom
github下载地址:https://github.com/samacs/simple_html_dom
最重要的一步:你得先了解别人网站的结构,知道从哪个tab开始是你想要的数据
下面演示下过程吧
实现过程我分了三步
1、将门店信息的经纬度,名称等一些重要信息先插入本地表
set_time_limit(0);$host = '127.0.0.1';$user = 'root';$user_pwd = '';$database = 'dataname';$conn = mysql_connect($host,$user,$user_pwd) or die('sss');mysql_select_db($database,$conn) or die('dddd');mysql_query('set names utf8');include('./simple_html_dom-master/simple_html_dom.php');$url = '需要爬取的网站URL';$html = file_get_html($url);$n = 1;foreach($html->find('li[data-counts=0]') as $e){ $storeid = $e->storeid; $star = $e->level.'.0'; $work_time = $e->time; $mapx = $e->mapx; $mapy = $e->mapy; $nickname = $e->mapname; $mapadd = $e->mapadd; $maptel = $e->maptel; $time = date('Y-m-d H:i:s'); $query = "INSERT INTO `store` (`storeid`,`star`,`work_time`,`longitude`,`latitude`,`create_time`,`nickname`,`address`,`tel`) VALUES ($storeid,'".$star."','".$work_time."','".$mapx."','".$mapy."','".$time."','".$nickname."','".$mapadd."','".$maptel."')"; $res = mysql_query($query); //echo $query;exit(); if($res){ echo '成功导入第'.$n.'个门店<br>'; $n++; }else{ die('失败<br>'); }}
2、跳入站点的另一个页面获取门店LOGO图片
$query = "SELECT storeid FROM store order by id desc";$row = mysql_query($query);while($rows = mysql_fetch_array($row)){ $url = 'http://别人站点域名/'.$rows['storeid'].'.jhtml'; $html = file_get_html($url); foreach($html->find('div.onlyOnePic') as $e){ //获取img的src属性 $img = $e->firstChild()->src; //将远程图片保存到本地 $content = file_get_contents($img); file_put_contents('./store/'.$rows['storeid'].'.jpeg', $content); }}
3、更新表中对应门店的LOGO字段
$query = "SELECT storeid FROM store order by id desc";$row = mysql_query($query);$n = 1;while($rows = mysql_fetch_array($row)){ $img = "https://我自己站点域名/".$rows['storeid'].".jpeg"; $sql = "UPDATE store set img_url='".$img."' where storeid=".$rows['storeid']; $res = mysql_query($sql); if($res){ echo '成功更新第'.$n.'个门店<br>'; $n++; }else{ echo '失败'; }}
OK,功能实现了,不过还没有更深入的了解这个类库的其他功能,这里也只是做个记录,方便以后需要的时候用
0 0
- php利用simple_html_dom类,获取页面内容,充当爬虫角色
- php解析html类库simple_html_dom(爬虫相关)
- php解析html类库simple_html_dom(爬虫相关)
- php抓取页面simple_html_dom的使用教程
- php 获取页面中的指定内容类
- php 自制基于simple_html_dom的爬虫一只v1.0
- php爬虫页面信息获取利器
- 利用webBrowser获取页面iframe中的内容
- 利用webBrowser获取页面iframe中的内容
- php simple_html_dom html 解析
- php simple_html_dom网页采集
- 类jquery的php解析html dom库,simple_html_dom
- 类jquery的php解析html库,simple_html_dom
- 利用webBrowser获取框架内Html页面内容
- 利用webBrowser获取框架内Html页面内容
- 利用webBrowser获取框架内Html页面内容
- php解析html类库simple_html_dom
- php解析html类库simple_html_dom
- perl 循环截取字符串
- scp后台运行
- SDWebImage加载图片URL第一次失败,后面图片URL存在不刷新的问题
- swift 2.2基本数据类型详解
- 防止网页被外部调用
- php利用simple_html_dom类,获取页面内容,充当爬虫角色
- 跟iPhone手机图标类似的控件抖动
- 自定义圆形的ImageView
- Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载
- SSL P1408【树】哈夫曼树(二)
- LINUX
- Oracle 的dataguard配置
- AJAX之XMLHttpRequest对象
- 测试boost::algorithm::replace_all 方法