位置: 编程技术 - 正文

一个PHP实现的轻量级简单爬虫(php单独运行)

编辑:rootadmin

推荐整理分享一个PHP实现的轻量级简单爬虫(php单独运行),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php做,php底层实现,php做,php有多简单,php单独运行,php如何实现,php如何实现,一个php请求的执行过程,内容如对您有帮助,希望把文章链接给更多的朋友!

最近需要收集资料,在浏览器上用另存为的方式实在是很麻烦,而且不利于存储和检索。所以自己写了一个小爬虫,在网上爬东西,迄今为止,已经爬了近百 万张网页。现在正在想办法着手处理这些数据。

爬虫的结构: 爬虫的原理其实很简单,就是分析下载的页面,找出其中的连接,然后再下载这些链接,再分析再下载,周而复始。在数据存储方面,数据库是首选,便于检索,而 开发语言,只要支持正则表达式就可以了,数据库我选择了mysql,所以,开发脚本我选择了php。它支持perl兼容正则表达式,连接mysql很方 便,支持http下载,而且windows系统和linux系统都可以部署。

正则表达式: 正则表达式是处理文字的基本工具,要取出html中的链接和图片,使用的正则表达式如下。

其他问题: 写爬虫还需要注意的一个问题是,对于已经下载过的url,不能重复进行下载,而有些网页的链接会形成环路,所以需要处理这个问题,我的处理方法是计算已经 处理的url的MD5 值,并存入数据库,这样就可以检验是否已经下载过。当然还有更好的算法,有兴趣的话,可以在网上找一下。

相关协议: 爬虫也有自己的协议,有个robots.txt文件定义了那些是网站允许遍历的,但是由于我的时间有限,没有实现这个功能。

其他说明: php支持类编程,我写的爬虫主要的类. 1.url处理web_site_info,主要用处理url,分析域名等。 2.数据库操作mysql_insert.php,处理和数据库相关的操作。 3.历史记录处理,记录已经处理的url。 4.爬虫类。

一个PHP实现的轻量级简单爬虫(php单独运行)

存在的问题和不足

这个爬虫在小数据量的情况下,运行良好,但是在大数据量的情况下,历史记录处理类的效率就不是很高,通过在数据库结构中,对相关字段进行了索引,速度有了 提高,但是需要不断得读取数据,可能和php本身的array实现有关系,如果一次加载万条历史记录,速度非常慢。 不支持多线程,每次只能处理一个url。 php运行本身有内存使用量限制,有一次在抓取深度为的页面的时候,内存用尽程序被杀。

下面的url是源码下载。

的用户名口令。最后

就可以开始工作。如

现在感觉下来,其实做个爬虫没那么复杂,难的是数据的存储和检索。我现在的数据库,最大一个数据表已经G,正在想办处理这些数据,mysql进 行查询已经感觉有点力不从心了。这点上还真佩服google

smarty内部日期函数html_select_date()用法实例分析 本文实例讲述了smarty内部日期函数html_select_date()的用法。分享给大家供大家参考。具体如下:主要属性:prefix//string类型默认前缀名为"Date_"start_year//strin

一张表搞清楚php is_null、empty、isset的区别 isset判断变量是否已存在empty判断变量是否为空或为0is_null判断变量是否为NULL变量emptyis_nullisset$a=truefalsetrue$a=nulltruetruefalsevar$atruetruefalse$a=array()truefalsetrue

在Debian系统下配置LNMP的教程 LNMP环境的配置是需要让我们的主机支持Nginx、MySQL、PHP、phpMyAdmin,这样配置好之后就可以直接使用此环境,并在上面运行网站了,下面我来配置方法。

标签: php单独运行

本文链接地址:https://www.jiuchutong.com/biancheng/284504.html 转载请保留说明!

上一篇:帝国cms常用标签汇总(帝国cms标签调用大全)

下一篇:一张表搞清楚php is_null、empty、isset的区别(用php做一个表格)

  • 未办理税务登记的个体户怎么注销营业执照
  • 汽车修理公司兼职好做吗
  • 金银首饰销售需求分析
  • 涉税专业服务是做什么的
  • 一般纳税人开具专票和普票的区别
  • 税控盘抵扣增值税有时间限制吗
  • 合伙企业季度所得税预缴不用纳税调整是吗
  • 企业中征码怎么办
  • 发票章没盖在盖章处
  • 资产负债表日后调整事项与非调整事项的区别
  • 一般纳税人的登记管理表述不正确的是
  • 留存收益转增资本有什么好处
  • 新企业如何办理税务登记
  • 公司名字开错了,认证过了怎么处理
  • 营改增后预交营业税怎么处理
  • 抵扣勾选和退税勾选选错了怎么办
  • 企业所得税少交了被税局查到怎么处理
  • 广告公司可以开维修费吗
  • 收回债权会计分录
  • 序列号不可用怎么办
  • 知识产权支出
  • 支票大写金额书写转换
  • 报销业务招待费属于什么现金流量项目
  • 已经认证的发票怎么冲红
  • 食堂购买蔬菜计算公式
  • 跨月的红字发票
  • 代销的价格怎么定
  • php二维数组遍历
  • 赞助费支出怎样记账
  • 出口零退税率商品目录
  • 劳务派遣应纳税额如何计算
  • 会计中持有至到期投资是什么意思
  • thinkphp import
  • 专利代理服务费计入什么科目
  • api使用方法
  • 增长gdp是什么意思
  • vue组件强制刷新
  • 神经网络模型是干嘛的
  • des算法加密解密过程
  • php PATH_SEPARATOR判断当前服务器系统类型实例
  • 域名续费多久生效
  • 视同销售账务处理如何做?
  • 物业管理公司的主管部门是哪个单位
  • 财政补助结转会计处理
  • 发票报销是个人还是单位
  • 生产车间劳务费会计分录
  • 自有资金等于货币资金吗
  • 税控系统维护费抵扣申报表怎么填
  • 个税代扣代缴手续费返还需要缴纳增值税吗
  • 只收加工费
  • 劳务报酬收入是否含税
  • 先付款后签协议是否违法
  • 固定资产折旧指标有哪些
  • 外购商品发给员工要交个税吗
  • 纯外贸企业进项税怎么抵扣
  • 代扣代缴的增值税怎么做账
  • 股权转让如何缴纳个税
  • 应收账款周转率越大越好还是越小越好
  • 年底结账会计要怎么做账
  • 有没有确认
  • 小规模纳税人年收入不能超过多少
  • 车船税没发票只交可以吗
  • 公司购药品入什么科目
  • 企业风险管理有哪些方面
  • 处置固定资产损失的账务处理
  • sql server中删除触发器用
  • 分配服务器失败
  • win7关机很慢是什么原因
  • windows8.1如何分区
  • windows server 2003 sp3
  • 在linux中使用什么可以执行shell脚本
  • opengl示例
  • 测试下载速度很快,实际下载很慢
  • 使用权资产
  • Javascript中Array.prototype.map()详解
  • js怎么定义类
  • js 工作流
  • Python中的多行注释文档编写风格汇总
  • 挂车是否需要缴纳车船税
  • 税务局风险评估是什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设