网页采集现在用到最多是工具了,像最受站长欢迎的就是火车头了,但有一些站长喜欢使用网页来自定义采集了,下面一起来看一个php 网页采集入库程序代码

php 网页采集程序总结,最近帮朋友做了个采集程序

以www.xxxx.com/shop_list.php?page=1&province=%B1%B1%BE%A9为例

%B1%B1%BE%A9是gb2312的转码,例如

$aa=”北京”;

$aa = @iconv(“utf-8″, “gb2312″,$aa);

echo $bb=urlencode($aa);

我们通过file_get_contents($url) 抓取网页 当然也可以是curl

function getHtml($url){

$ch2 = curl_init($url);

curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);

$html = curl_exec($ch2);

curl_close($ch2);

return $html;

}

抓取我们想要的页面数据,可以设定从哪个位置到哪个位置的区间,取出中间数据,通过以下方法实现

function findneed($wholestr,$strkey1,$strkey2)

{

$num1 = strpos($wholestr , $strkey1)+strlen($strkey1);

$num2 = strpos($wholestr ,$strkey2);

$needstr =substr($wholestr ,$num1,$num2-$num1 );

return $needstr;

}

当然这是一种方法,我们只要写出一个php即可,根据分页抓取,但是如果都放在循环里面,岂不是很慢

我们介绍另个算法

通过实现网页跳转页数,抓取,访问程序,不断跳转页数,把当前url的page 数组保存到数据库

其他的无非是些正则表达式的用法:

比如我们想取页面中的所有城市

可用preg_match_all(‘/(.*?)/s’,$html,$selects);即可

(.*?)表示任意字符 . 是任何东西 * 是0至无限 ? 是0至1

还有种算法是递归,类似循环取值

function collectionProvinceData($url,$province,$page=1,$totalPage=-1){

if($page>$totalPage&&$totalPage>-1){

return false;

}

$collectionUrl = $url."?page=".$page."&province=".urlencode(iconv('UTF-8', 'GB2312', $province));

echo "当前url:".$province."第{$page}页 url".$collectionUrl."";

$html = getHtml($collectionUrl);

$html = mb_convert_encoding($html, 'UTF-8', 'UTF-8,GBK,GB2312,BIG5');

if($totalPage==-1){

$latestPageNum = getLatestPageNum($html);

if($latestPageNum>0){

$totalPage = $latestPageNum;

}

}

$dataRows = getDataRows($html);

saveDataRowsOrNot($dataRows);

if(!empty($dataRows)){

$page++;

}

ob_flush();

flush();

collectionProvinceData($url,$province,$page,$totalPage);

}

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php出入库单生成源码,php 网页采集入库程序代码相关推荐

  1. 【参赛作品47】openGauss数据库源码学习-指标采集、预测与异常检测

    作者:parker opengauss源码解析 指标采集.预测与异常检测 代码位置:/gausskernel/dbmind/tools/anomaly_detection 各模组在整体结构上的组合在摩 ...

  2. 2021-12-4-openGauss数据库源码学习-指标采集、预测与异常检测

    opengauss源码解析 指标采集.预测与异常检测 代码位置:/gausskernel/dbmind/tools/anomaly_detection 各模组在整体结构上的组合在摩天轮论坛上官方解析文 ...

  3. java wsdl反向生成源码,并使用CXF实现客户端调用代码

    1. 查询对方提供的wsdl链接,通过该链接以及wsdl工具生成源码文件. eg: wsdl地址为:http://sersh.passport.189.cn/UDBAPPInterface/UDBAP ...

  4. h5制作 php 开源,PHP源码:2019最新仿易企秀V15.1完整版开源版源码,修复采集功能、新增同行站模板采集等...

    源码说明: 更新功能如下: 新增同行站模板采集 修复模板中心采集方法 修复自定义场景加载LOGO问题 预览H5不在是默认封面加载 可以自定义自己的网站LOGO 安装说明: 把源码包上传到网站根目录 然 ...

  5. 微信小程序:开心锤锤超火动态表情包微信小程序源码下载自动采集

    这是一款表情包小程序源码 大家刷抖音的时候应该都刷过开心锤锤这个网红卡通短视频吧 现在这一款小程序就是和它有关的 里面的表情包呢大部分都是动态表情包(斗图的时候是不是更炫) 至于里面的表情包人物的就都 ...

  6. HTML5七夕情人节表白网页(抖音-流动爱心表白)HTML+CSS+JavaScript 求婚示爱代码 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 爱心表白网页

    HTML5七夕情人节表白网页❤抖音-流动爱心表白❤ HTML+CSS+JavaScript 求婚示爱代码 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 爱心表白网页 这是程序员表白 ...

  7. php多用户表白源码,php源码]阿狸表白自动生成源码

    这个源码是本人一直再用的一款源码,刚开始用下载的时候问题也是蛮多的,经过自己的修改也是大大改善了. 这里是使用:传送门 如需修改生成完成的php文件页面管理文件夹请修改 love.php 中的 131 ...

  8. vivi采集php,php源码:VIVI万能小偷程序1.5 智能采集不求人(内置2条采集规则)

    好东西介绍: Warning: curl_setopt(): CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir is se ...

  9. HTML5七夕情人节表白网页(抖音超火3D炫酷魔方) HTML+CSS+JavaScript 求婚示爱代码 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 css爱心表白

    HTML5七夕情人节表白网页❤抖音超火❤3D炫酷魔方❤ HTML+CSS+JavaScript 求婚示爱代码 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 css爱心表白 这是程序 ...

最新文章

  1. ping 不通容器 宿主_Docker容器间通信
  2. yii2.0框架中自定义接口,实现类的多继承
  3. lol服务器维护9月30,英雄联盟4月30日更新维护几点结束_4月30日LOL10.9版本停机维护结束时间_3DM网游...
  4. Android屏幕信息获取
  5. NumPy快速入门--复制/视图/深拷贝
  6. idea集成python_IDEA集成Python插件,SDK配置
  7. 极光推送 简书android,(Android)react-native集成极光推送
  8. Dedecms会员中心注入漏洞
  9. python爬虫爬取网易云音乐歌手信息
  10. HDU-5064-Find Sequence(DP)
  11. flink Too many fields referenced from an atomic type
  12. 百度seo关键词优化 优化技巧是什么
  13. win7设置计算机共享的打印机共享的打印机共享,告诉你win7打印机共享设置教程...
  14. 统一自定义idea和eclipse代码格式化和注释格式化总结
  15. 地下城与勇士鬼剑士觉醒java_地下城与勇士之鬼剑士觉醒单机版
  16. [ FI基本业务流程 ] - FI与MM间的业务集成
  17. 火狐浏览器无法启动java_打开火狐浏览器出现错误
  18. 为什么华为、阿里、字节跳动、微软等都走上了云原生和数字化之路?
  19. 最火的python视频_超火Python400集视频,116-248集思维导图视频介绍(第二季)
  20. java future 异常处理_Java异常处理总结

热门文章

  1. PPT_Control 手机控制PPT演示的工具 v180223
  2. 京东JIMDB(Jingdong In Memory DataBase,京东内存数据库)
  3. 平面几何----用四点共圆证明西姆松定理
  4. 账号或密码多次输入错误,进行账号封禁
  5. 亚马逊UPC报错根本原因是什么?
  6. 微机----------------LED显示接口
  7. arcmap新建要素_ArcGIS创建要素类
  8. vasp phonopy消除虚频个人经验总结
  9. 【来自passover的博客】技术人创业至今的反思
  10. c 语言 饮料自动售卖机的销售过程.,饮料自动售货机带C程序和设计报告.doc