gpt4 book ai didi

web-crawler - 如何使用Goutte

转载 作者:行者123 更新时间:2023-12-03 16:34:28 24 4
gpt4 key购买 nike

问题 :
无法完全理解 Goutte 网络爬虫。

请求 :
有人可以帮助我理解或提供代码来帮助我更好地理解如何使用 Goutte 网络抓取工具吗?我已经阅读了 README.md。我正在寻找比提供的信息更多的信息,例如 Goutte 中可用的选项以及如何编写这些选项,或者当您查看表单时,您是否搜索表单的 name= 或 id=?

试图抓取网页布局 :
步骤 1 :
该网页有一个表格,有一个单选按钮,用于选择要填写的表格类型(即名称或许可证)。它默认为带有名字和姓氏文本框的名称以及状态下拉菜单选择列表。如果您选择 Radio,则 jQuery 或 JavaScript 会使名字和姓氏文本框消失并出现许可证文本框。

步骤 2 :
成功提交表单后,它会将您带到一个包含多个链接的页面。我们可以进入其中的两个来获取我们需要的信息。

步骤 3 :
一旦我们成功点击了链接,我们希望第三页包含我们正在寻找的数据,我们希望将该数据存储到一个 php 变量中。

提交错误信息 :
如果提交了错误的信息,那么 jQuery/Javascript 会返回一条消息
“没有找到记录。”在与提交相同的页面上。

备注 :
首选方法是选择许可证单选按钮,填写许可证编号,选择州,然后提交表格。我已经阅读了大量关于 Goutte 的帖子和博客以及其他项目,但我无法找到 Goutte 的可用选项、如何找到这些信息或如何使用这些信息(如果确实存在)。

最佳答案

您要查看的文档是 Symfony2 DomCrawler .

Goutte 是建立在 Guzzle 之上的客户端每次请求/提交内容时都会返回爬虫:

use Goutte\Client;
$client = new Client();
$crawler = $client->request('GET', 'http://www.symfony-project.org/');

使用此爬虫,您可以执行诸如获取正文中的所有 P 标签之类的操作:
$nodeValues = $crawler->filter('body > p')->each(function (Crawler $node, $i) {
return $node->text();
});
print_r($nodeValues);

填写并提交表格:
$form = $crawler->selectButton('sign in')->form(); 
$crawler = $client->submit($form, array(
'username' => 'username',
'password' => 'xxxxxx'
));

A selectButton() method is available on the Crawler which returns another Crawler that matches a button (input[type=submit], input[type=image], or a button) with the given text. [1]



单击链接或设置选项、选择复选框等,请参阅 Form and Link support .

要从爬虫中获取数据,请使用 htmltext方法
echo $crawler->html();
echo $crawler->text();

关于web-crawler - 如何使用Goutte,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15628926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com