一,背景
爬虫作为能自动高效获取目标数据网络机器人被运用于很多需要数据支撑的软件开发中,在此要说的就是基于php使用curl方式来爬取数据;
而具体项目经历便是我第一次写的爬虫,虽然过了挺久了,现想找时间记录一下,希望能给一些初学者一些参考。
二,正文
1,配置设置
常见网页分为两种,http和https而在curl方式中就主要以cuel_setopt来设置爬取时的各种属性系数(各个系数使用方式可参考http://www.php.net/manual/zh/function.curl-setopt.php),
而决定是抓取htttp还是抓取https的语句是curl_setopt(ch,CURLOPTSSLVERIFYPEER,FALSE);和curlsetopt(ch, CURLOPT_SSL_VERIFYHOST, FALSE);
以下是设置为只能抓取http协议的网页,要抓取https协议的网页只需在执行前加上刚刚那两行代码即可
2,执行curl_exec(ch);返回抓取的HTML,(有时不是html,有可能是json等具体看需求是要页面明面上的数据还是其接口的返回数据)ch= curl_init();
curl_setopt($ch,CURLOPT_URL,”http://www.qq.com/“);
//设置抓取的url
curl_setopt(ch,CURLOPTHEADER,1);//设置头文件的信息作为文件流返回curlsetopt(ch, CURLOPT_RETURNTRANSFER, 1);

$ CH =curl_init();
curl_setopt($ ch,CURLOPT_URL,“ http://www.qq.com/ ”); //设置抓取的url
curl_setopt($ ch,CURLOPT _ HEADER,1); //设置头文件的信息作为文件流返回
// curl _ setopt($ch,CURLOPT _ SSL _ VERIFYPEER,FALSE); // https请求不验证证书和主机
// curl_setopt($ ch,CURLOPT _ ENCODING,“gzip,deflate”);
// curl _ setopt($ ch,CURLOPT_ENCODING,'gzip'); //
curl _ setopt($ ch,CURLOPT _ POST,1);
curl _ setopt($ CH,CURLOPT _ TIMEOUT,10);
curl _ setopt($ ch,CURLOPT _ PROXYAUTH,CURLAUTH _ BASIC); //代理认证模式
curl_setopt($ ch,CURLOPT _ PROXYTYPE,CURLPROXY _ HTTP); //使用HTTP代理模式
$data = curl_exec($CH);echo $ date; 

3,关于ip代理,有时候会遇到ip封禁的问题,curl爬虫体制提供利用ip代理来爬行的方式
4,对html解析,解析html其实就是对一大段字符串的数据筛选,第一时间我们可以想到正则表达式来筛选,但这个还需要一些测试正则匹配结果的可用性,于是在此我们使用更为有效筛选的解析包simple_html_dom,需要去网上下载一个php文件文件名为simple_html_dom,一般在搜索引擎搜索simple_html_dom下载即可找到,
总结
以上只是php爬虫的最基本操作,爬虫往往是程序员之间的博弈,目标愿意让你爬就很轻易,目标不想让你爬,那就看是谁的能力更强,技术更新更硬了,比如我现在在做的一个新的项目中就涉及了请求头的模拟cookie值的解析js,对于ip封禁问题的解决,有时候我们甚至还需要去模拟移动端来抓取数据,以后面对其他需求,tcp/ip协议层和多线程等技术都得涉及,特别是网络原理方面的知识大家都得加强,个人观点,共勉= =

php curl方式网页爬虫爬取原页面数据+simple_html_dom解析方式(php爬虫基础)相关推荐

  1. python 百度百科 爬虫_爬虫爬取百度百科数据

    以前段时间<青春有你2>为例,我们使用Python来爬取百度百科中<青春有你2>所有参赛选手的信息. 什么是爬虫? 为了获取大量的互联网数据,我们自然想到使用爬虫代替我们完成这 ...

  2. 对爬虫爬取到的数据进行存储

    已写章节 第一章 网络爬虫入门 第二章 基本库的使用 第三章 解析库的使用 第四章 数据存储 第五章 动态网页的抓取 文章目录 已写章节 第四章 数据存储 4.1 文件存储 4.1.1 TXT文件存储 ...

  3. python爬虫 爬取斗鱼直播数据

    from time import sleepimport requests from bs4 import BeautifulSoup# 爬取分类页面数据 #获取斗鱼分类页面数据 def get_di ...

  4. PHP爬取post网页数据,php curl发送post请求爬取webService接口数据简单实例

    header('Content-Type: text/html;charset=utf-8'); /** * 使用curl发送post请求 * @param $url * @param string ...

  5. mysql scrapy 重复数据_大数据python(scrapy)爬虫爬取招聘网站数据并存入mysql后分析...

    基于Scrapy的爬虫爬取腾讯招聘网站岗位数据视频(见本头条号视频) 根据TIOBE语言排行榜更新的最新程序语言使用排行榜显示,python位居第三,同比增加2.39%,为什么会越来越火,越来越受欢迎 ...

  6. python xpath循环_Python爬虫 爬取北京二手房数据

    点击蓝字"python教程"关注我们哟! 前言 Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及 ...

  7. 使用爬虫爬取两种数据:结构化/非结构化文本

    一.非结构化文本的爬取 微博上有一篇关于"#学校里的男生有多温柔#"的话题,点进去一看感觉评论很真实,于是想把评论给爬下来看一看,并生成词云.刚开始思路是通过网页端微博爬取,通过开 ...

  8. python爬虫爬取58网站数据_python实战学习笔记:爬取58同城平板电脑数据

    学习爬虫一周后独立完成的第一个作业项目:爬取58同城平板电脑数据. 1.首先确定URL,并抓取详情页中需要的信息 首先我们确定好需要爬取的网页URL是:http://zhuanzhuan.58.com ...

  9. 《崔庆才Python3网络爬虫开发实战教程》学习笔记(5):将爬虫爬取到的数据存储到TXT,Word,Excel,Json等文件中

    本篇博文是自己在学习崔庆才的<Python3网络爬虫开发实战教程>的学习笔记系列,此套教程共5章,加起来共有34节课,内容非常详细丰富!如果你也要这套视频教程的话,关注我公众号[小众技术] ...

  10. python爬虫爬取58网站数据_Python爬虫,爬取58租房数据 字体反爬

    Python爬虫,爬取58租房数据 这俩天项目主管给了个爬虫任务,要爬取58同城上福州区域的租房房源信息.因为58的前端页面做了base64字体加密所以爬取比较费力,前前后后花了俩天才搞完. 项目演示 ...

最新文章

  1. 如何给女朋友解释为什么Java里面的String对象是不可变的?
  2. Jupyter notebook运行指定的conda虚拟环境
  3. MySql错误处理(三)- 错误处理的例子
  4. android 什么是9.png
  5. 牛客题霸 [ 求路径] C++题解/答案
  6. 统计范围内不含‘7‘的数字个数(洛谷P1590题题解,Java语言描述)
  7. php数组的几个函数和超全局变量
  8. Spring Batch的事务-Part 1:基础
  9. OpenCV编译、安装、测试
  10. cad怎么倒圆角_CAD哪些技巧是菜鸟必备,哪些又让你相见恨晚?
  11. matlab 图片生成mif文件,使用MATLAB一鍵制作mif文件
  12. 穹顶之下——大数据下生活
  13. Macbook因电池隐患被禁上飞机
  14. 经验分享!java程序员面试十多家公司后的经验心得
  15. RLS,LMS以及NLMS三种自适应均衡matlab仿真
  16. solo 电路 耳放_SOLO耳放分析,带PCB布线
  17. 微服务框架-基础框架
  18. Java String的API方法总结
  19. 7-2 Verilog VGA驱动
  20. mysql在哪关防火墙_MySQL的防火墙功能

热门文章

  1. ABP (ASP.NET Core 5.x + Vue)小白基础入门(一)
  2. MobaXterm快捷输入
  3. mysql课程表设计_MySQL如何设计课程表的数据库
  4. linux免费日志分析工具,分享10个优秀的日志分析工具
  5. SecureCRT资源下载安装
  6. dnf喇叭怎么设置不显示服务器,《DNF》屏蔽广告喇叭方法 广告喇叭怎么关掉
  7. 计算机等考网络真题2018,2018年网络管理员考试试题及答案
  8. oracle9i命令(一):手工创建数据库
  9. Webpack打包UMD的export要带default访问问题
  10. 【debug】googlecode 使用代理svn下载代码