问题标签 [goutte]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6688 浏览

php - 在 Goutte 中发送具有相同参数名称的 post 请求

我正在抓取的一个站点对两个参数使用相同的名称,所以我想做这样的事情:

但是,由于数组中不可能有两个相同的键,所以我遇到了问题。是否可以在 Goutte(Symfony 的 BrowserKit)中提出这样的请求?这是我想从 Chrome 的网络选项卡发出的确切请求的打印屏幕。

在此处输入图像描述

0 投票
1 回答
64 浏览

php - 如何使用 php_CURL 访问网站

这是酋长国网站上通常的里程计算器页面,如果我想通过传递某些参数从该页面的 DOM 访问某些字段,那么使用 php 需要哪个库以及如何使用?我研究了以下两个库: 1.Goutte 2.Simplehtml dom 我都使用了它们,我只能搜索特定的字符串,如果它们存在则返回是,否则返回没有。链接是这个:

http://www.emirates.com/account/english/miles-calculator/miles-calculator.aspx?org=BOM&dest=JFK&trvc=0&h=7b1dc440b5eecbda143bd8e7b9ef53a27e364b

如果我想知道“根据“票价等级”、机票类型、Skywards 等级和展会类型,我从美国到印度可以赚取多少里程。不要提供代码,只需指导我如何加载dom 使用任何现有的库并检索我的查询。

0 投票
1 回答
1784 浏览

php - 抓取具有多个重定向的页面的最佳方法

我想爬取 NCBI 网站并在此链接上发送蛋白质局部比对请求: http ://blast.ncbi.nlm.nih.gov/Blast.cgi?PROGRAM=blastp&BLAST_PROGRAMS=blastp&PAGE_TYPE=BlastSearch

我想知道我是否能够使用 PHP 向该地址提交发布请求并获得新页面中的结果。还有一个问题,在显示最终结果之前,页面会经历多次重定向 - 您可以使用以下进入文本区域的输入来测试这种情况:

这是我的尝试:

这段代码让我获得了初始页面,就好像没有完成 POST 一样。谢谢


更新

我尝试了以下建议之一 - Goutte。

这是我的新代码:

变量$aaTest是我上面给出的蛋白质序列。好的部分是:它发布,让我进入新页面,但不遵循所有重定向。我怎样才能让它遵循所有的重定向?

0 投票
2 回答
118 浏览

php - Mink XML 处理不如预期,在提要中添加反斜杠

我将 Mink 与 Goutte webdriver 一起使用,试图用 XML 提要替换网站中表单的内容。

我编写了以下方法:

其中基本上包含 XML 提要,然后我将其中的一部分替换为我事先拥有的订单 ID 并调用该函数fillField与 Mink 捆绑在一起的函数。

问题是它不只是粘贴我提供的文本,而是通过在 " 符号之前设置反斜杠以一种奇怪的方式对其进行格式化,如下所示:

因此,当我尝试提交 XML 提要时,网站显示以下错误:

我尝试使用stripslashesPHP 中的方法,但它不起作用,就好像我在添加订单 ID 后尝试回显它显示原始 XML 没有斜杠,所以我猜有调用其他一些函数使用fillField它时确实会在我的文本中添加反斜杠,但我无法找到它的来源。

有谁知道这种从"到的转换\"是在哪里进行的以避免它?

谢谢

0 投票
1 回答
157 浏览

yii - Yii Goutte 功能测试覆盖率未记录

功能测试覆盖率没有记录 Goutte 网络爬虫调用的任何控制器。

相反,覆盖率报告显示测试本身已被覆盖。我期待报告显示站点控制器中的索引操作也将被涵盖。

测试工作并确定服务器响应为 200 OK。我是否需要调整任何配置以允许 phpunit 跟随请求进入控制器/动作?- 我使用 PHP yii 框架并使用 netbeans 和 jenkins 进行测试

0 投票
0 回答
430 浏览

php - 网页抓取中的可变 URL

我正在使用 Goutte 和 Guzzle + Dom Crawler 在 Laravel 中创建一个网络爬虫。我想抓取包含可变字符的网址。

我有一个http://www.example.com的基本网址。现在,如果我转到 post1 页面,我希望刮板有一个变量 { $post } 并刮掉http://www.example.com/post1。但是,example.com 已设置为 post1 在 url 中有随机的额外字符,例如http://www.example.com/21442/post1

有没有办法将正则表达式添加到我的请求中,以便我可以提出我的请求:http ://www.example.com/ \S*/{ $post } ?

0 投票
4 回答
1481 浏览

selenium - 如何检测页面资产的 404 错误?

我刚刚开始使用 Behat 和 Mink。我将 MinkExtension 与 Goutte 和 Selenium 以及 DrupalExtension 一起使用。

到目前为止,一切都很好。我可以加载页面、查找各种元素、测试链接等。

但我看不到如何检查各种资产上的 404 - 尤其是图像,还有 css 和 js 文件。

任何提示或示例将不胜感激。

0 投票
1 回答
2288 浏览

php - 使用 Goutte 下载图像

我必须在请求中使用 cookie 下载图像。我可以使用 file_get_contents(使用 stream_context_create)或使用传递 cookie 的 curl 来实现。但是如何使用 Goutte 来实现呢?

我发出 GET 请求,下一步是什么?

好的,我想通了:

0 投票
2 回答
6407 浏览

php - 使用 Laravel 和 Elvedia\Goutte 抓取网站:如何提取 JSON

我设法使用Goutte Laravel 4成功访问了远程 JSON 资源:

它产生如下输出:

对象(Symfony\Component\DomCrawler\Crawler)#285 (4) { ["uri":protected]=> string(36) " http://domain.mg/usergroup/list" ["defaultNamespacePrefix":"Symfony\Component\DomCrawler\Crawler":private]=> 字符串(7) "default" ["namespaces":"Symfony\Component\DomCrawler\Crawler":private]=> 数组(0) { } ["storage":"SplObjectStorage":private]=> 数组(1) { ["0000000075faaa10000000001af55ef8"]=> 数组(2) { ["obj"]=> 对象(DOMElement)#241 (17) { [ "tagName"]=> string(4) "html" ["schemaTypeInfo"]=> NULL ["nodeName"]=> string(4) "html" ["nodeValue"]=> string(438) "[{" id":1,"group_name":"Compte principal","group_desc":"Administrateur","group_level":9},{"id":2,"group_name":"Profil pour les comptables","group_desc":"Comptables","group_level":2},{"id":3,"group_name":"Validateur d'op\u00e9ration","group_desc":"Superviseur"," group_level":9},{"id":18,"group_name":"No Comment","group_desc":"Autres 雇用\u00e9s","group_level":6},{"id":41,"group_name" :"Invit\u00e9","group_desc":"Guest","group_level":2}]" ["nodeType"]=> int(1) ["parentNode"]=> string(22) "(对象值省略)" ["childNodes"]=> string(22) "(省略对象值)" ["firstChild"]=> string(22) "(省略对象值)" ["lastChild"]=> string(22) "(省略对象值)" ["previousSibling"]=> string(22) "(省略对象值)" ["attributes"]=> string(22) "(省略对象值)" ["ownerDocument"]=> string(22) "(省略对象值)" ["namespaceURI"]=> NULL ["prefix"]=> string(0) "" ["localName"]=> string(4) "html" ["baseURI"]=> NULL ["textContent"]=> string(438) "[{"id":1,"group_name":"Compte principal","group_desc":"Administrateur","group_level ":9},{"id":2,"group_name":"Profil pour les comptables","group_desc":"Comptables","group_level":2},{"id":3,"group_name":"Validateur d'op\u00e9ration","group_desc":"Superviseur","group_level":9},{"id":18,"group_name":"No Comment","group_desc":"Autres 雇用\u00e9s","group_level":6},{"id":41,"group_name":"邀请\u00e9","group_desc":"Guest","group_level":2}]" } ["inf"] => 空 } } }"group_level":2}]" } ["inf"]=> NULL } } }"group_level":2}]" } ["inf"]=> NULL } } }

我偶然发现提取/转换对象内 JSON 的内部表示$crawler。那怎么可能呢?

0 投票
1 回答
2002 浏览

php - 带有 gotte 的同时 HTTP 请求

我知道goutte是建立在guzzle之上的。这是一个带有 guzzle 的并发 HTTP 请求示例。

同时请求也可以通过 gotte 运行吗?