1. 如何用php 编写网络爬虫
php不太适合用来写网络爬虫,因为几乎没有现成的框架,或者成熟的下载机制,也不太适合做并发处理.
下载页面的话除了一个curl,就是file_get_contents,或者curl_multi来做并发请求.curl可以代理端口,虚假ip,带cookie,带header请求目标页面,下载完成之后解析页面可以用queryList来解析html.写法类似jQuery.
提供给你我之前写的类:curl.php 希望可以帮到你.
QueryList.php和phpQuery.php由于文件太大了,没办法贴上来
public function curlRequest($url, $postData = '', $timeOut = 10, $ HTTP/1.0
按回车两次
使用telnet就是告诉你其实这是一个socket的技术,并且使用HTTP的协议,如GET方法来获得网页,当然,接下来的事你就需要解析HTML文法,甚至还需要解析Javascript,因为现在的网页使用Ajax的越来越多了,而很多网页内容都是通过Ajax技术加载的,因为,只是简单地解析HTML文件在未来会远远不够。当然,在这里,只是展示一个非常简单的抓取,简单到只能做为一个例子,下面这个示例的伪代码:
取网页for each 链接 in 当前网页所有的链接{ if(如果本链接是我们想要的 || 这个链接从未访问过) { 处理对本链接 把本链接设置为已访问 }}
require “rubygems”require “mechanize”class Crawler