问题标签 [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 回答
1703 浏览

php - 如何使用 Symfony DomCrawler 组件和 Goutte for Laravel 4 从我的爬虫对象中跳过或删除 html 标签列表?

这是我的第一次尝试,但没有奏效。

我想从这个页面http://www.amazon.com/dp/B00IOY8XWQ/ref=fs_kv获取“p”标签,它接缝在段落中有一些 js,所以当我尝试做 $node->文本(); 它让我得到了“p”中“脚本”中的文本和js。结构是这样的;

所以我只想要 Lorem ipsum 文本。

0 投票
1 回答
570 浏览

goutte - 如何单击使用 Goutte 创建的 javascript 链接

有谁知道如何点击由 javascript 和 Goutte 设置的链接?

例如链接是这样的。

0 投票
2 回答
2881 浏览

symfony - 如何使用 Guzzle 客户端上传文件?

我正在尝试对上传方法进行 BDD 测试。我在 symfony2 项目中使用 Behat 和 Mink。

现在我可以用这个客户端做简单的请求:

没有任何问题。

如何对文件进行请求?我试过这个:

我收到的错误是:

PHP 致命错误:调用未定义的方法 GuzzleHttp\Stream\Stream::addFile()

错误是什么?谢谢!

0 投票
0 回答
935 浏览

php - 在 PHP 中使用 Goutte 抓取 AJAX 页面

我正在尝试使用Goutte和 Symfony Dom Crawler 爬取 AJAX 网站,以便为我们的在线商店获取一些文章。我得到错误:

未定义索引:HTTP_ACCEPT_LANGUAGE

地址是http://b2b.asicsonline.com/adg/welcome

我无法获取表格或在网站上登录。你能告诉我可能是什么问题吗?

0 投票
1 回答
649 浏览

php - How to prevent an intercepted Guzzle 3 request from generating DNS requests?

I'm using Goutte 1.0.6 (the latest to use Guzzle 3) to build a web scraper. For testing I want to load an HTTP response and serve that instead of a real cURL response, and this mostly works fine. Presently the use case is unit testing, but I expect I'll want to use this for production caching too.

Interestingly, I've noticed sometimes that if I am disconnected from the web, my unit tests slow down. I did a bit of digging with Wireshark, and find that my calls to http://example.com/something are generating DNS requests, even though they are unnecessary.

Here is the relevant snippet of my Guzzle plugin to supply the fake response. The relevant bits are the captured request.before_send event, and the fact that the request has its response filled in at the end, if a cache item is found in a Propel table:

To recap, the code itself is working. Wireshark shows no actual attempts to fetch data over port 80 and there is no failure exception (e.g. 404) relating to example.com's inability to supply the documents I ask for. So, my fake responses seem to be fine.

Is there a way for me to prevent Guzzle making these pointless DNS calls? I did think about using the MockPlugin but I wasn't sure how to do that at the time, and nor now whether that would fix this one remaining issue.

(I rather like doing the faking/mocking inside a plugin, so whilst I've no problem with using MockPlugin, I would want to do interceptions inside it, rather than outside as per the docs. I guess I could extend it, perhaps?)

It may be that I need to move to a later version of Guzzle, and if that is the only way, so be it. I'm on an old project where the latest Goutte at the time used Guzzle 3. I intend to upgrade, but would rather do that later if possible, as my current versions do everything I want.


Post Script: it occurs to me that the DNS call could conceivably come from Goutte and not Guzzle. I'm not sure how to go about debugging that, at least in part because Goutte is fetched by Composer as a .phar file. Could a debugger like xdebug be useful here to see what is making the network call, and where?

0 投票
2 回答
56 浏览

php - 通过浏览器访问时PHP执行提前终止

我试图了解 PHP 并在 Apache/Linux 上设置一个小脚本。

如果我php index.php从 shell 调用它,它执行得很好。但是如果我通过我的浏览器调用它,它就无法执行。apache 错误日志中没有任何信息。

这可能是什么原因?

该脚本正在通过Goutteand抓取另一个获取 url curl,因此执行大约需要 3 秒。

-- 回复评论 --

我省略了代码,因为它是微不足道的,一个 Goutte 客户端,一个请求,然后是提取h1标签。

它在控制台中工作,但通过 Chrome 调用告诉我我缺少 curl - 这是安装apt-get install php-curl

0 投票
1 回答
857 浏览

php - 无法抓取谷歌

我正在尝试使用Goutte(它基本上是 Guzzle + Symfony DOM 解析器的包装器)从谷歌搜索反向图像搜索结果。

我正在做:

.. 并且输出 ( https://paste.ee/p/spfYA ) 包含正确的 URL,但body(HTML) 是默认搜索页面,没有结果。

我应该怎么做才能以 HTML 格式获取搜索结果。

0 投票
1 回答
2157 浏览

selenium-webdriver - Behat/Mink - 无法使用 goutteDriver 通过 xpath 找到元素

我正在使用 Behat 3.0 和 Mink 1.6。

这些代码适用于 Selenium2 和 Zombie,但不适用于 Goutte:

有谁知道发生了什么?

0 投票
2 回答
452 浏览

php - 格式错误的字段路径“”(InvalidArgumentException)

我正在使用 Behat 进行一些自动化测试,并添加了 Mink 及其 Goutte 驱动程序。我正在使用最新版本的 Behat 和 Mink。

我已将 Mink 扩展添加到功能上下文文件中,当我运行以下简单功能时它可以工作:

但是,当我尝试下一步并尝试填写一些字段时:

其中用户名:

<input class="input-field" type="text" id="username"/>

我收到以下错误:

任何帮助都感激不尽,

谢谢!

0 投票
1 回答
336 浏览

php - 以编程方式登录 http://login.live.com

作为测试自动化项目的一部分,我需要能够登录到http://login.live.com

那可能吗?我目前正在使用 Symfony 和 Goutte