Tôi đang cố gắng phân tích cú pháp mã html dưới đây bằng cách sử dụng lxml.html
và sử dụng CSSSelector
thay vì XPath
.Python: Bộ chọn CSS để sử dụng bên trong lxml.cssselect
link = doc.cssselect('html body div.results dl dt a)
mã trên là đem lại cho tôi content-1
và content-2
như đầu ra nhưng đầu ra mong muốn của tôi là link 1 link 2
. Vì vậy, tôi đã thay thế mã của mình bằng
link = doc.cssselect('html body div.results dl dt a[href]')
nhưng vẫn nhận được cùng một đầu ra. Vì vậy, câu hỏi của tôi là bộ chọn CSS thích hợp để lấy thuộc tính href là gì.
<div class = "results">
<div> some tags here </div>
<dl>
<dt title = "My Title 1" style = "background: transparent url('/img/accept.png') no-repeat right center">
<a href = "/link 1"> content-1</a>
</dt>
</dl>
<dl>
<dt title = "My Title 2" style = "background: transparent url('/img/accept.png') no-repeat right center">
<a href = "/link 2">content-2</a>
</dt>
</dl>
</div>
Tôi đã tự tìm ra.Anyways cảm ơn cho câu trả lời – RanRag
@brandizzi, bạn nói đúng - bạn chỉ có thể chọn các phần tử trong css, chứ không phải thuộc tính - dấu ngoặc để lọc yếu tố nào (nhưng không phải là ý tưởng tồi để chỉ chọn các thẻ không có thuộc tính href) đó là những gì một [href] làm). –
@RanRag, bạn nên đánh dấu câu trả lời của brandizzi là chính xác ngay cả khi bạn không cần nó cuối cùng. –