爬虫抓取页面数据原理(php爬虫框架有很多 )
一、总结
1、php爬虫框架有很多,包括很多傻瓜式的软件
2、照以前写过java爬虫的例子来看,真的非常简单,就是一个获取网页数据的类或者方法(这里的话),然后就可以获取网页上的html源代码,然后取啥数据就用正则表达式来取好了
二、爬虫抓取页面数据原理
a、网页的页面源码我们可以轻松获得
b、比如cnsd博客,文章的正文内容全部放在<article></article>当中,所以非常好获取,此时我们获取的是html的页面,不同网站标签不同,具体看情况就好
java基础 网页爬虫

c、html的数据自带格式,所以直接放到数据库即可,因为数据库里面存的也就是html数据,要显示的话直接把这部分数据放到页面上面来即可

三、PHP爬虫最全总结1
一套傻瓜式的软件操作,如八爪鱼,火车头等软件。
今天我们首先尝试的是使用PHP实现一个爬虫程序,首先在不使用爬虫框架的基础上实践也是为了理解爬虫的原理,然后再利用PHP的lib,框架和扩展进行实践。

所有代码挂在我的github上。
1.PHP简单的爬虫–原型
爬虫的原理:
- 给定原始的url;
- 分析链接,根据设置的正则表达式获取链接中的内容;
- 有的会更新原始的url再进行分析链接,获取特定内容,周而复始。
- 将获取的内容保存在数据库中(mysql)或者本地文件中
2.使用crul lib
开启crul
针对winow系统:
- php.in中修改(注释;去掉即可)
extension=php_curl.dll
- php文件夹下的libeay32.dll, ssleay32.dll, libssh2.dll 还有 php/ext下的php_curl4个文件移入windows/system32
使用crul爬虫的步骤:
- 使用cURL函数的基本思想是先使用curl_init()初始化一个cURL会话;
- 接着你可以通过curl_setopt()设置你需要的全部选项;
- 然后使用curl_exec()来执行会话;
- 当执行完会话后使用curl_close()关闭会话。
例子
讯享网
一个完整点的例子:
要对https支持,需要在函数中加入下面的设置:
讯享网
结果疑惑:
我们通过1和2部分得到的结果差异很大,第1部分能得到四千多条url数据,而第2部分却一直是45条数据。
还有我们获得url数据可能会有重复的,这部分处理在我的github上,对应demo2-01.php,或者demo2-02.php
3.file_get_contents/stream_get_contents与curl对比
3.1 file_get_contents/stream_get_contents对比
- stream_get_contents — 读取资源流到一个字符串
与 [file_get_contents()]一样,但是 stream_get_contents() 是对一个已经打开的资源流进行操作,并将其内容写入一个字符串返回
- file_get_contents — 将整个文件读入一个字符串
【注】 如果要打开有特殊字符的 URL (比如说有空格),就需要使用进行 URL 编码。
3.2 file_get_contents/stream_get_contents与curl对比
- fopen /file_get_contents 在请求HTTP时,使用的是http_fopen_wrapper,不会keeplive。而curl却可以。这样在多次请求多个链接时,curl效率会好一些。
- fopen / file_get_contents 函数会受到php.ini文件中allow_url_open选项配置的影响。如果该配置关闭了,则该函数也就失效了。而curl不受该配置的影响。
- curl 可以模拟多种请求,例如:POST数据,表单提交等,用户可以按照自己的需求来定制请求。而fopen / file_get_contents只能使用get方式获取数据。
4.使用框架
使用框架这一块打算以后单独研究,并拿出来单写一篇博客
所有代码挂在我的github上。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/10128.html