php curl抓取网页(什么是网络爬虫?PHP和Python都写过爬虫和提取程序)
优采云 发布时间: 2021-12-28 23:05php curl抓取网页(什么是网络爬虫?PHP和Python都写过爬虫和提取程序)
什么是网络爬虫?
网络爬虫是一种自动提取网页的程序。它从万维网上下载网页供搜索引擎使用,是搜索引擎的重要组成部分。传统爬虫从一个或多个初始网页的网址开始,获取初始网页上的网址。在爬取网页的过程中,他们不断地从当前页面中提取新的URL并将它们放入队列中,直到满足系统的某个停止条件。
爬虫有什么用?
很多语言都可以用来编写爬虫,比如Java、PHP、Python等。每个都有自己的优点和缺点。
PHP 和 Python 都编写了爬虫和文本提取程序。
一开始用PHP,所以说一下PHP的优点:
1. 语言比较简单,PHP是一门很随意的语言。写起来很容易,这样你就可以专注于你想做的事情,而不是各种语法规则等等。
2. 各种功能模块齐全,这里分两部分:
1.网页下载:curl等扩展库;
2. 文档解析:dom、xpath、tidy、各种转码工具,可能与题主的不同。我的爬虫需要提取文本,所以需要非常复杂的文本处理,所以很方便 文本处理工具是我的大爱。;
简而言之,它很容易上手。
缺点:
1. 并发处理能力弱:由于当时PHP没有线程和进程功能,如果要实现并发,就需要借用多服务模型。PHP 使用选择模型。实现起来比较麻烦,可能是因为级别的问题,我的程序中经常会出现一些错误,导致miss catch。
让我们谈谈Python:
优势:
1.各种爬虫框架,方便高效的下载网页;
2.多线程,成熟稳定的进程模型,爬虫是典型的多任务场景,请求一个页面的时候会有很长的延迟,一般来说等待比较多。多线程或进程将优化程序的效率,提高整个系统的下载和分析能力。
3.GAE 支持。我写爬虫的时候只有GAE,而且只支持Python。用 GAE 创建的爬虫几乎是免费的。最多,我有将近一千个应用程序示例在工作。
缺点:
1. 对非标准HTML的适应性差:比如一个页面中同时有GB18030字符集中的中文和UTF-8字符集中的中文,Python处理就没有PHP那么简单了,你需要自己做很多判断工作。当然这在提取文本的时候就麻烦了。
当时还检查了 Java 和 C++。它们比脚本语言更麻烦,所以我放弃了。
总之,如果你开发一种小型爬虫脚本语言,它在各方面都是一种优势语言。如果你想开发一个复杂的爬虫系统,Java可能是一个附加选项,而C++我认为写一个模块更合适。对于爬虫系统来说,下载和内容分析只是两个基本功能。一个真正好的系统还包括完整的任务调度、监控、存储、页面数据存储和更新逻辑、重新加载等。Crawler是一个消耗带宽的应用,一个好的设计会节省大量的带宽和服务器资源,好坏差距很大。
全面的
写爬虫就是边测试边写。但是考试改了。这个过程用python写最方便。
而python相关的库也是最方便的。有request、jieba、redis、gevent、NLTK、lxml、pyquery、BeautifulSoup、Pillow。最简单的爬虫和极其复杂的爬虫都可以轻松处理。