ฉันจะแยกคำหลักออกจากหน้าเว็บโดยใช้ PHP DOM ได้อย่างไร

นี่คือโค้ดเดียวกับที่ฉันดึงมาจากหน้าเว็บ...

        <div class="user-details-narrow">
            <div class="profileheadtitle">
                <span class=" headline txtBlue size15">
                    Profession
                </span>
            </div>
            <div class="profileheadcontent-narrow">
                <span class="txtGrey size15">
                    administration
                </span>
            </div>
        </div>

เมื่อแสดงบนหน้าเว็บจะแสดงเป็น "การบริหารวิชาชีพ" สิ่งที่อยากทำคือแยกอาชีพ ในกรณีนี้คือ "การบริหาร" อย่างไรก็ตาม มันไม่ง่ายอย่างที่คิด เนื่องจากโค้ดส่วนนี้ถูกทำซ้ำหลายครั้งสำหรับคำถามอื่นๆ เช่น

        <div class="user-details-narrow">
            <div class="profileheadtitle">
                <span class=" headline txtBlue size15">
                    Industry
                </span>
            </div>
            <div class="profileheadcontent-narrow">
                <span class="txtGrey size15">
                    banking
                </span>
            </div>
        </div>

มีความคิดเห็นเกี่ยวกับวิธีแก้ปัญหาที่ดีหรือไม่?


person Community    schedule 20.06.2015    source แหล่งที่มา
comment
สิ่งที่เป็นเอกลักษณ์เกี่ยวกับ administration ฉันไม่เห็นสิ่งใดที่แตกต่างจาก banking   -  person chris85    schedule 20.06.2015
comment
ไม่มีอะไรพิเศษเกี่ยวกับทั้งสองฟิลด์ นั่นคือปัญหาของฉัน   -  person    schedule 01.07.2015
comment
ใช่ ฉันเห็นว่านั่นเป็นปัญหา ฉันไม่สามารถคิดวิธีทางโปรแกรมในการระบุวิธีที่ถูกต้องในกรณีนั้นได้   -  person chris85    schedule 01.07.2015


คำตอบ (1)


กรุณาอย่าใช้นิพจน์ทั่วไปในการรับค่าโหนดจากเพจ

PHP มีคลาสที่ดีมากชื่อ DOMDocument คุณสามารถดึงข้อมูลเพจเป็น DOMDocument:

$dom = new DOMDocument;
$dom->loadURL("http://test.de/page.html");
$finder = new DomXPath($doc);
$spaner = $finder->query("//*[contains(@class, 'size15')]");
echo $spaner->item(0)->nodeValue . "/" . $spaner->item(1)->nodeValue;
person Richard    schedule 20.06.2015
comment
การใช้ DOM ของ PHP ฉันยังไม่ทราบวิธีแยกวิเคราะห์ HTML อย่างถูกต้อง ดังที่ Chris กล่าวข้างต้น ไม่มีความแตกต่างในโค้ดระหว่าง Profession และ Industry และยังมีโค้ดอื่นๆ อีกมากมายด้วย ฉันจะดึงพวกมันทั้งหมดแยกจากกันได้อย่างไร? - person ; 01.07.2015