我正在尝试获取名称= Reeks的选择列表的值,您可以在此页面上找到它:http://www.volleyvvb.be/?page_id=1083。选择列表如下所示:
<select class="vvb_tekst_middelkl" name="Reeks" onchange="this.form.submit();">
<option value="%" selected="">ALLE REEKSEN</option>
<option value="Liga A H">ETHIAS VOLLEY LEAGUE</option>
<option value="Liga B H">LIGA B HEREN</option>
<option value="Ere D">LIGA A DAMES</option>
...
</select>
这就是我获取选择列表的方式:
$html = file_get_contents("http://www.volleyvvb.be/?page_id=1083");
$crawler = new Crawler($html);
$crawler = $crawler->filter("select[name='Reeks']");
foreach ($crawler as $domElement) {
foreach($domElement->childNodes as $child) {
$value = $child->nodeValue;
var_dump($value);
}
}
我现在看到的是<option></option>
之间的所有行ALLE REEKSEN, ETHIAS VOLLEY LEAGUE
。但我也喜欢像Liga A H这样的价值观......我怎样才能选择它们?
答案 0 :(得分:1)
以下代码
<?php
require_once("resources/simple_html_dom.php");
$html = file_get_contents("http://www.volleyvvb.be/?page_id=1083");
$doc = str_get_html($html);
$select = $doc->find("select[name='Reeks']");
foreach ($select as $domElement) {
$child = $domElement->find('option');
foreach($child as $option) {
echo $option->getAttribute('value')."<br>";
}
}
?>
给我你要求的输出。
Liga A H
Liga B H
Ere D
...
DomCrawler Component的等价物将是
$value = $child->nodeValue; // LIGA B HEREN, ...
$attribute = $child->attr('value'); // Liga B H, ...
有关详细信息,请查看Documentation here。
答案 1 :(得分:0)
您需要使用each method for crawler和attr mehtod for crawler
试试这个:
$crawler->filter("select[name='Reeks']")->each(function ($node, $i) {
echo $node->text(); -> // to print the value of html
echo $node->attr('value'); -> // to print the value of value attrbuite
});