安装phpSpider
首先,我们需要安装phpSpider这个工具。可以通过composer进行安装,打开终端或命令提示符,执行以下命令:
composer require sunra/php-simple-html-dom-parser
创建一个简单的爬虫
接下来,我们创建一个简单的爬虫来抓取指定网页上的内容。首先,创建一个名为spider.php的文件,并在文件中添加以下代码:
<?php
require 'vendor/autoload.php';
use SunraPhpSimpleHtmlDomParser;
$url = 'https://www.example.com'; // 指定要爬取的网页URL
// 获取网页内容
$html = file_get_contents($url);
// 解析HTML
$dom = HtmlDomParser::str_get_html($html);
// 提取需要的数据
$title = $dom->find('title', 0)->plaintext; // 获取网页标题
echo "标题:" . $title . "
";
$links = $dom->find('a'); // 获取所有链接
foreach ($links as $link) {
echo "链接:" . $link->href . "
";
}
?>
运行该脚本,即可在命令行或终端上看到抓取的网页标题和所有链接。
指定爬取规则
phpSpider还提供了更高级的功能,可以使用CSS选择器或XPath来指定要爬取的内容。例如,我们可以修改上述代码,只抓取指定CSS类名为"product"的元素,如下所示:
<?php
// ...
// 提取需要的数据
$elements = $dom->find('.product'); // 获取所有CSS类名为"product"的元素
foreach ($elements as $element) {
echo "产品名称:" . $element->plaintext . "
";
echo "产品链接:" . $element->href . "
";
}
?>
运行修改后的代码,即可只输出CSS类名为"product"的元素及其链接。
设置请求头
有时,网站会根据请求头的内容进行反爬虫的处理,为了更好地模拟浏览器发送请求,我们可以设置请求头。如下所示:
<?php
// ...
// 设置请求头
$options = [
'http' => [
'header' => "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
"
]
];
$context = stream_context_create($options);
// 获取网页内
.........................................................