簡體   English   中英

用simple_html_dom抓取

[英]Scraping with simple_html_dom

我正在嘗試刮擦:

<a id="pa1">Site1</a>
<font size="-1">Text1</font><br />
<font size="-1" color="green">Text2</font><br />

我很容易進入pa1。但是我想進入后面的兩種字體。

$html = new simple_html_dom();
$html->load($document);

foreach ($html->find('#pa1>font') as $e) {
    $this->check_line_two = $this->process_array_elements($e->innertext);
}

foreach ($html->find('#pa1>font>font') as $e) {
    $this->check_line_three = $this->process_array_elements($e->innertext);
}

兩者都不起作用。 如何使用簡單的html dom獲得下一個元素?

#pa1沒有后代font -tag。

您顯然在搜索的是兄弟選擇器+#pa1 + font 但是我不知道您所使用的庫是否支持它。

請閱讀他們的文檔: http : //simplehtmldom.sourceforge.net/manual.htm

就像Feeela所說的那樣,那些字體元素不是錨的后代。 嘗試這樣的事情:

foreach ($html->find('#pa1') as $e) {
    $firstFontElement = $e->next_sibling();
}

如果這只是您要剪貼的全部內容,為什么不選擇字體標簽。

foreach ($html->find('font') as $e) {
    $this->check_line_two = $this->process_array_elements($e->innertext);
}

還是文檔中可能存在更多字體標簽?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM