php多线程抓取网页(什么是网络爬虫?PHP和Python都写过爬虫和提取程序)

优采云 发布时间: 2022-01-14 19:14

  php多线程抓取网页(什么是网络爬虫?PHP和Python都写过爬虫和提取程序)

  什么是网络爬虫?

  网络爬虫是一种自动提取网页的程序。它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成部分。传统爬虫从一个或多个初始网页的URL开始,获取初始网页上的URL。在抓取网页的过程中,它不断地从当前页面中提取新的 URL 并放入队列中,直到满足系统的某些停止条件。

  

  爬行动物有什么用?

  很多语言都可以用来编写爬虫,比如Java、PHP、Python等,它们各有优缺点。

  PHP 和 Python 都编写了爬虫和文本提取器。

  我开始使用PHP,那么我们来谈谈PHP的优点:

  1.语言比较简单,PHP是一门很随意的语言。它很容易编写,让您专注于您正在尝试做的事情,而不是各种语法规则等等。

  2.各种功能模块齐全,分为两部分:

  1.网页下载:curl等扩展库;

  2.文档解析:dom、xpath、tidy、各种转码工具,可能和题主的问题不太一样,我的爬虫需要提取文本,所以需要很复杂的文本处理,所以各种方便的文本处理工具是我的最爱。;

  总之,很容易上手。

  缺点:

  1.并发处理能力弱:由于当时PHP没有线程和进程功能,为了实现并发,需要借用多通道消费模型,而PHP使用了select模型。实现起来比较麻烦,可能是因为level的问题,我的程序经常会出现一些错误,导致错过catch。

  

  让我们谈谈Python:

  优势:

  1.各种爬虫框架,方便高效的下载网页;

  2.多线程,成熟稳定的进程模型,爬虫是典型的多任务场景,请求一个页面会有很长的延迟,一般会多等待。多线程或多进程将优化程序效率,提高整个系统的下载和分析能力。

  3.GAE的支持,我写爬虫的时候刚好有GAE,而且只支持Python。使用 GAE 创建的爬虫几乎是免费的。最多,我有将近一千个应用程序实例在工作。

  缺点:

  1. 对非标准HTML的适应性差:比如一个页面同时收录GB18030字符集中文和UTF-8字符集中文,Python处理不像PHP那么简单,需要自己做很多的判断工作。当然,这在提取文本时很麻烦。

  Java和C++当时也在研究,比脚本语言更麻烦,所以放弃了。

  总之,如果你开发一个小规模的爬虫脚本语言,它是一门各方面都有优势的语言。如果你想开发复杂的爬虫系统,Java可能是一个额外的选择,而C++我觉得写一个模块更合适。对于爬虫系统来说,下载和内容解析只是两个基本功能。一个真正好的系统还包括完整的任务调度、监控、存储、页面数据保存和更新逻辑、重新加载等等。爬虫是一个消耗带宽的应用程序。一个好的设计会节省大量的带宽和服务器资源,好坏差距很大。

  全面的

  编写爬虫是同时编写和测试。测试但再次更改。这个程序用python写是最方便的。

  而python相关的库也是最方便的,比如request、jieba、redis、gevent、NLTK、lxml、pyquery、BeautifulSoup、Pillow。无论是最简单的爬虫还是非常复杂的爬虫,都可以轻松搞定。

  如果你从成为python工程师还是新手,可以从“我的专栏”开始学习。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线