我已经编写了一个网站抓取工具用于项目。
我通过Sahi控制Firefox使用Mink访问每个站点并在必要时与任何元素进行交互。我已经设法在我尝试过的所有网站上完美地运行,除了一个......
我试图从https://www.o2.co.uk/shop/phones/
获取标记我使用与此页面完全相同的代码,就像我对其他所有代码一样:
// Configure driver
$this->driver = new \Behat\Mink\Driver\SahiDriver('firefox',
new \Behat\SahiClient\Client(
new \Behat\SahiClient\Connection(null, CRAWL_SERVER, 9999)
)
);
// Init session:
$this->session = new \Behat\Mink\Session($this->driver);
// Start session:
$this->session->start();
// Open the url
$this->session->visit($config['url']);
// Get the markup from the page
$markup = $this->session->getPage()->getContent();
当我使用此代码尝试从https://www.o2.co.uk/shop/phones/获取标记时,Mink似乎挂起,等待某事发生。
似乎这个页面上的某些内容可能会阻止Sahi或Mink返回标记。我还尝试运行其他功能而不是getContent()
,例如$this->session->wait(2000);
并尝试使用getPage
命令搜索find
。
如果有人知道为什么会这样,我会非常有兴趣找出为什么以及如何使这项工作。
TL;博士 为什么Mink / Sahi在这个网站上超时?