Làm cách nào để sử dụng BeautifulSoup, tìm kiếm các thẻ chứa CHỈ thuộc tính mà tôi tìm kiếm? Ví dụ: Tôi muốn tìm tất cả các thẻ <td valign="top">
.Cách tìm thẻ chỉ với một số thuộc tính nhất định - BeautifulSoup
Các mã sau đây: raw_card_data = soup.fetch('td', {'valign':re.compile('top')})
được tất cả các dữ liệu tôi muốn, nhưng cũng lấy bất kỳ thẻ <td>
có thuộc tính valign:top
Tôi cũng đã cố gắng: raw_card_data = soup.findAll(re.compile('<td valign="top">'))
và điều này trả về không có gì (có thể là vì regex xấu)
Tôi đã tự hỏi liệu có cách nào trong BeautifulSoup nói "Tìm các thẻ <td>
chỉ có thuộc tính là valign:top
"
CẬP NHẬT Ví dụ, nếu một tài liệu HTML chứa <td>
thẻ sau đây:
<td valign="top">.....</td><br />
<td width="580" valign="top">.......</td><br />
<td>.....</td><br />
tôi muốn chỉ <td>
thẻ đầu tiên (<td width="580" valign="top">
) để trở về
Theo nhận xét của tôi về julio.alegria, Điều này sẽ tìm tất cả các thẻ '
Vì vậy, bạn có thể kiểm tra len (tag.attrs). Nếu len (tag.attrs)> 1, bỏ qua thẻ (Tôi đã sửa bài của tôi) –
Tuyệt vời, cảm ơn người đàn ông! – Snaxib
Chỉ cần vượt qua nó làm đối số của
findAll
:Nguồn
2012-01-19 22:06:56 juliomalegria
Điều gì xảy ra nếu có các thẻ như vậy: '
Bạn có thể sử dụng các chức năng
lambda
trongfindAll
như được giải thích trong documentation. Vì vậy mà trong trường hợp của bạn để tìm kiếmtd
tag với chỉvalign = "top"
sử dụng sau đây:Nguồn
2014-04-22 06:33:29 Yogesh
câu trả lời hay nhất vì nó sử dụng toàn bộ sức mạnh của BS –
Câu trả lời tuyệt vời vì nó mang lại cho bạn kết quả theo cách rất tối ưu. – CrazyGeek
Cách dễ nhất để làm điều này là với phong cách CSS mới
select
phương pháp:Nguồn
2016-02-18 23:15:22
cũng là phiên làm việc với phiên bản mới nhất. –
nếu bạn muốn chỉ tìm kiếm với tên thuộc tính có bất kỳ giá trị nào
Nguồn
2017-07-28 05:37:22 Amr
Bạn đang thiếu dấu ngoặc đơn sau 'r '. *" ', Dẫn đến việc này không biên dịch. –
Các vấn đề liên quan