2013-11-04 11 views
7

Tôi có html trông như thế này:Làm thế nào để chọn nút tiếp theo sử dụng scrapy

<h1>Text 1</h1> 
<div>Some info</div> 
<h1>Text 2</h1> 
<div>...</div> 

Tôi hiểu làm thế nào để giải nén sử dụng thông tin scrapy từ h1:

content.select("//h1[contains(text(),'Text 1')]/text()").extract() 

Nhưng mục tiêu của tôi là để trích xuất nội dung từ <div>Some info</div>

Vấn đề của tôi là tôi không có bất kỳ thông tin cụ thể nào về div. Tất cả những gì tôi biết, rằng nó đi chính xác sau <h1>Text 1</h1>. Tôi có thể sử dụng bộ chọn, lấy phần tử TIẾP THEO trong cây không? Phần tử, nằm trên cùng một cấp trong cây DOM?

Cái gì như:

a = content.select("//h1[contains(text(),'Text 1')]/text()") 
a.next("//div/text()").extract() 
Some info 

Trả lời

13

Hãy thử điều này xpath:

//h1[contains(text(), 'Text 1')]/following-sibling::div[1]/text() 
Các vấn đề liên quan